Loading .gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -3,3 +3,4 @@ venv/ *__pycache__* .vscode/ fotoblog/.env fotoblog/media/ fotoblog/authentication/forms.py +7 −0 Original line number Diff line number Diff line from django import forms from django.contrib.auth.forms import UserCreationForm from django.contrib.auth import get_user_model from .models import User Loading @@ -12,3 +13,9 @@ class SignupForm(UserCreationForm): class Meta(UserCreationForm.Meta): model = get_user_model() fields = ('username', 'email', 'first_name', 'last_name', 'role') class ProfilePictureForm(forms.ModelForm): class Meta: model = User fields = ['profile_photo'] fotoblog/authentication/templates/authentication/profile_upload.html 0 → 100644 +31 −0 Original line number Diff line number Diff line {% extends 'base.html' %} {% block title %}Fotoblog - Photo de profil{% endblock %} {% block content %} <h1>Photo de profil</h1> <p> <ul class="messages" id="messages-list"> {% if messages %} {% for message in messages %} <li> {% if message.tags %} <div class="alert alert-{{ message.tags }} msg fade show" role="alert">{{ message }}</div> {% else %} <div class="alert alert-info msg fade show" role="alert">{{ message }}</div> {% endif %} </li> {% endfor %} {% endif %} </ul> <form method="post" enctype="multipart/form-data"> {{ form.as_p }} {% csrf_token %} <button type="submit" >uploader</button> </form> </p> {% endblock %} No newline at end of file fotoblog/authentication/views.py +26 −3 Original line number Diff line number Diff line Loading @@ -2,14 +2,15 @@ from django.shortcuts import render, redirect from django.conf import settings from django.contrib import messages from django.views.generic import View from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth import authenticate, login, logout from . import forms from .forms import LoginForm, ProfilePictureForm, SignupForm class LoginView(View): dataview = dict() template_name = 'authentication/login.html' form_class = forms.LoginForm form_class = LoginForm def get(self, request): self.dataview['form'] = self.form_class() Loading Loading @@ -42,7 +43,7 @@ class SignupView(View): dataview = dict() template_name = 'authentication/signup.html' form_class = forms.SignupForm form_class = SignupForm def get(self, request): self.dataview['form'] = self.form_class() Loading @@ -55,3 +56,25 @@ class SignupView(View): login(request, user) return redirect(settings.LOGIN_REDIRECT_URL) return render(request, self.template_name, self.dataview) class ProfilePictureView(LoginRequiredMixin, View): dataview = dict() template_name = 'authentication/profile_upload.html' form_class = ProfilePictureForm def get(self, request): self.dataview['form'] = self.form_class() return render(request, self.template_name, self.dataview) def post(self, request): self.dataview['form'] = form = self.form_class(request.POST, request.FILES, instance=request.user) if form.is_valid(): form.save() messages.add_message(request, messages.INFO, 'photo ajoutée avec succès') return redirect('home') return render(request, self.template_name, self.dataview) fotoblog/blog/forms.py 0 → 100644 +14 −0 Original line number Diff line number Diff line from django import forms from .models import Photo, Blog class MediaForm(forms.ModelForm): class Meta: model = Photo fields = ['image', 'caption'] class BlogForm(forms.ModelForm): class Meta: model = Blog fields = ['title', 'content'] Loading
.gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -3,3 +3,4 @@ venv/ *__pycache__* .vscode/ fotoblog/.env fotoblog/media/
fotoblog/authentication/forms.py +7 −0 Original line number Diff line number Diff line from django import forms from django.contrib.auth.forms import UserCreationForm from django.contrib.auth import get_user_model from .models import User Loading @@ -12,3 +13,9 @@ class SignupForm(UserCreationForm): class Meta(UserCreationForm.Meta): model = get_user_model() fields = ('username', 'email', 'first_name', 'last_name', 'role') class ProfilePictureForm(forms.ModelForm): class Meta: model = User fields = ['profile_photo']
fotoblog/authentication/templates/authentication/profile_upload.html 0 → 100644 +31 −0 Original line number Diff line number Diff line {% extends 'base.html' %} {% block title %}Fotoblog - Photo de profil{% endblock %} {% block content %} <h1>Photo de profil</h1> <p> <ul class="messages" id="messages-list"> {% if messages %} {% for message in messages %} <li> {% if message.tags %} <div class="alert alert-{{ message.tags }} msg fade show" role="alert">{{ message }}</div> {% else %} <div class="alert alert-info msg fade show" role="alert">{{ message }}</div> {% endif %} </li> {% endfor %} {% endif %} </ul> <form method="post" enctype="multipart/form-data"> {{ form.as_p }} {% csrf_token %} <button type="submit" >uploader</button> </form> </p> {% endblock %} No newline at end of file
fotoblog/authentication/views.py +26 −3 Original line number Diff line number Diff line Loading @@ -2,14 +2,15 @@ from django.shortcuts import render, redirect from django.conf import settings from django.contrib import messages from django.views.generic import View from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth import authenticate, login, logout from . import forms from .forms import LoginForm, ProfilePictureForm, SignupForm class LoginView(View): dataview = dict() template_name = 'authentication/login.html' form_class = forms.LoginForm form_class = LoginForm def get(self, request): self.dataview['form'] = self.form_class() Loading Loading @@ -42,7 +43,7 @@ class SignupView(View): dataview = dict() template_name = 'authentication/signup.html' form_class = forms.SignupForm form_class = SignupForm def get(self, request): self.dataview['form'] = self.form_class() Loading @@ -55,3 +56,25 @@ class SignupView(View): login(request, user) return redirect(settings.LOGIN_REDIRECT_URL) return render(request, self.template_name, self.dataview) class ProfilePictureView(LoginRequiredMixin, View): dataview = dict() template_name = 'authentication/profile_upload.html' form_class = ProfilePictureForm def get(self, request): self.dataview['form'] = self.form_class() return render(request, self.template_name, self.dataview) def post(self, request): self.dataview['form'] = form = self.form_class(request.POST, request.FILES, instance=request.user) if form.is_valid(): form.save() messages.add_message(request, messages.INFO, 'photo ajoutée avec succès') return redirect('home') return render(request, self.template_name, self.dataview)
fotoblog/blog/forms.py 0 → 100644 +14 −0 Original line number Diff line number Diff line from django import forms from .models import Photo, Blog class MediaForm(forms.ModelForm): class Meta: model = Photo fields = ['image', 'caption'] class BlogForm(forms.ModelForm): class Meta: model = Blog fields = ['title', 'content']