Loading fotoblog/authentication/views.py +15 −15 Original line number Diff line number Diff line Loading @@ -8,16 +8,16 @@ from .forms import LoginForm, ProfilePictureForm, SignupForm class LoginView(View): dataview = dict() context = dict() template_name = 'authentication/login.html' form_class = LoginForm def get(self, request): self.dataview['form'] = self.form_class() return render(request, self.template_name, self.dataview) self.context['form'] = self.form_class() return render(request, self.template_name, self.context) def post(self, request): self.dataview['form'] = form = self.form_class(request.POST) self.context['form'] = form = self.form_class(request.POST) if form.is_valid(): user = authenticate( Loading @@ -35,7 +35,7 @@ class LoginView(View): messages.ERROR, 'Identifiants invalides.') return render(request, self.template_name, self.dataview) return render(request, self.template_name, self.context) def logout_page(request): Loading @@ -45,34 +45,34 @@ def logout_page(request): class SignupView(View): dataview = dict() context = dict() template_name = 'authentication/signup.html' form_class = SignupForm def get(self, request): self.dataview['form'] = self.form_class() return render(request, self.template_name, self.dataview) self.context['form'] = self.form_class() return render(request, self.template_name, self.context) def post(self, request): self.dataview['form'] = form = self.form_class(request.POST) self.context['form'] = form = self.form_class(request.POST) if form.is_valid(): user = form.save() login(request, user) return redirect(settings.LOGIN_REDIRECT_URL) return render(request, self.template_name, self.dataview) return render(request, self.template_name, self.context) class ProfilePictureView(LoginRequiredMixin, View): dataview = dict() context = 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) self.context['form'] = self.form_class() return render(request, self.template_name, self.context) def post(self, request): self.dataview['form'] = form = self.form_class(request.POST, self.context['form'] = form = self.form_class(request.POST, request.FILES, instance=request.user) if form.is_valid(): Loading @@ -81,4 +81,4 @@ class ProfilePictureView(LoginRequiredMixin, View): messages.INFO, 'photo ajoutée avec succès') return redirect('home') return render(request, self.template_name, self.dataview) return render(request, self.template_name, self.context) fotoblog/blog/forms.py +10 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,16 @@ class MediaForm(forms.ModelForm): class BlogForm(forms.ModelForm): post_edit = forms.BooleanField(widget=forms.HiddenInput, initial=True) class Meta: model = Blog fields = ['title', 'content'] widgets = { 'content': forms.Textarea(attrs={'cols': 80, 'rows': 20}), } class BlogDeleteForm(forms.Form): post_delete = forms.BooleanField(widget=forms.HiddenInput, initial=True) fotoblog/blog/models.py +13 −1 Original line number Diff line number Diff line from django.db import models from django.conf import settings from PIL import Image class Photo(models.Model): image = models.ImageField() Loading @@ -9,6 +9,18 @@ class Photo(models.Model): on_delete=models.CASCADE) date_created = models.DateTimeField(auto_now_add=True) IMAGE_MAX_SIZE = (800, 800) def resize_image(self): image = Image.open(self.image) image.thumbnail(self.IMAGE_MAX_SIZE) image.save(self.image.path) def save(*args, **kwargs) -> None: super().save(**args, **kwargs) self.resize_image() return self class Blog(models.Model): photo = models.ForeignKey(Photo, null=True, Loading fotoblog/blog/templates/blog/media_multiple_create.html 0 → 100644 +24 −0 Original line number Diff line number Diff line {% extends 'base.html' %} {% block title %}Fotoblog - Media Upload{% endblock %} {% block content %} <h1>Uploader plusieurs médias</h1> <p> {% include "messages_notif.html" %} <form method="post" enctype="multipart/form-data"> {{ media_formset.management_form }} {% csrf_token %} {% for form in media_formset %} <hr> {{ form.as_p }} {% endfor %} <hr> <button type="submit" >uploader</button> </form> </p> {% endblock %} No newline at end of file fotoblog/blog/templates/blog/post_edit.html 0 → 100644 +26 −0 Original line number Diff line number Diff line {% extends 'base.html' %} {% block title %}Fotoblog - Création d'un billet de blog{% endblock %} {% block content %} <h1>Edition d'un billet de blog</h1> <p> {% include "messages_notif.html" %} <form method="post" > {{ edit_form.as_p }} {% csrf_token %} <button type="submit" >Publier</button> </form> <hr> <h3>Supprimer le billet ?</h3> <form method="post" > {{ delete_form }} {% csrf_token %} <button type="submit" >Supprimer</button> </form> </p> {% endblock %} No newline at end of file Loading
fotoblog/authentication/views.py +15 −15 Original line number Diff line number Diff line Loading @@ -8,16 +8,16 @@ from .forms import LoginForm, ProfilePictureForm, SignupForm class LoginView(View): dataview = dict() context = dict() template_name = 'authentication/login.html' form_class = LoginForm def get(self, request): self.dataview['form'] = self.form_class() return render(request, self.template_name, self.dataview) self.context['form'] = self.form_class() return render(request, self.template_name, self.context) def post(self, request): self.dataview['form'] = form = self.form_class(request.POST) self.context['form'] = form = self.form_class(request.POST) if form.is_valid(): user = authenticate( Loading @@ -35,7 +35,7 @@ class LoginView(View): messages.ERROR, 'Identifiants invalides.') return render(request, self.template_name, self.dataview) return render(request, self.template_name, self.context) def logout_page(request): Loading @@ -45,34 +45,34 @@ def logout_page(request): class SignupView(View): dataview = dict() context = dict() template_name = 'authentication/signup.html' form_class = SignupForm def get(self, request): self.dataview['form'] = self.form_class() return render(request, self.template_name, self.dataview) self.context['form'] = self.form_class() return render(request, self.template_name, self.context) def post(self, request): self.dataview['form'] = form = self.form_class(request.POST) self.context['form'] = form = self.form_class(request.POST) if form.is_valid(): user = form.save() login(request, user) return redirect(settings.LOGIN_REDIRECT_URL) return render(request, self.template_name, self.dataview) return render(request, self.template_name, self.context) class ProfilePictureView(LoginRequiredMixin, View): dataview = dict() context = 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) self.context['form'] = self.form_class() return render(request, self.template_name, self.context) def post(self, request): self.dataview['form'] = form = self.form_class(request.POST, self.context['form'] = form = self.form_class(request.POST, request.FILES, instance=request.user) if form.is_valid(): Loading @@ -81,4 +81,4 @@ class ProfilePictureView(LoginRequiredMixin, View): messages.INFO, 'photo ajoutée avec succès') return redirect('home') return render(request, self.template_name, self.dataview) return render(request, self.template_name, self.context)
fotoblog/blog/forms.py +10 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,16 @@ class MediaForm(forms.ModelForm): class BlogForm(forms.ModelForm): post_edit = forms.BooleanField(widget=forms.HiddenInput, initial=True) class Meta: model = Blog fields = ['title', 'content'] widgets = { 'content': forms.Textarea(attrs={'cols': 80, 'rows': 20}), } class BlogDeleteForm(forms.Form): post_delete = forms.BooleanField(widget=forms.HiddenInput, initial=True)
fotoblog/blog/models.py +13 −1 Original line number Diff line number Diff line from django.db import models from django.conf import settings from PIL import Image class Photo(models.Model): image = models.ImageField() Loading @@ -9,6 +9,18 @@ class Photo(models.Model): on_delete=models.CASCADE) date_created = models.DateTimeField(auto_now_add=True) IMAGE_MAX_SIZE = (800, 800) def resize_image(self): image = Image.open(self.image) image.thumbnail(self.IMAGE_MAX_SIZE) image.save(self.image.path) def save(*args, **kwargs) -> None: super().save(**args, **kwargs) self.resize_image() return self class Blog(models.Model): photo = models.ForeignKey(Photo, null=True, Loading
fotoblog/blog/templates/blog/media_multiple_create.html 0 → 100644 +24 −0 Original line number Diff line number Diff line {% extends 'base.html' %} {% block title %}Fotoblog - Media Upload{% endblock %} {% block content %} <h1>Uploader plusieurs médias</h1> <p> {% include "messages_notif.html" %} <form method="post" enctype="multipart/form-data"> {{ media_formset.management_form }} {% csrf_token %} {% for form in media_formset %} <hr> {{ form.as_p }} {% endfor %} <hr> <button type="submit" >uploader</button> </form> </p> {% endblock %} No newline at end of file
fotoblog/blog/templates/blog/post_edit.html 0 → 100644 +26 −0 Original line number Diff line number Diff line {% extends 'base.html' %} {% block title %}Fotoblog - Création d'un billet de blog{% endblock %} {% block content %} <h1>Edition d'un billet de blog</h1> <p> {% include "messages_notif.html" %} <form method="post" > {{ edit_form.as_p }} {% csrf_token %} <button type="submit" >Publier</button> </form> <hr> <h3>Supprimer le billet ?</h3> <form method="post" > {{ delete_form }} {% csrf_token %} <button type="submit" >Supprimer</button> </form> </p> {% endblock %} No newline at end of file