Commit 4271b806 authored by Anthony Jacob's avatar Anthony Jacob
Browse files

post edit,

use formset Factory to upload multiple Photo,
add resize_image to reduce size of Photo on save
parent f7e2693a
Loading
Loading
Loading
Loading
+15 −15
Original line number Diff line number Diff line
@@ -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(
@@ -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):
@@ -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():
@@ -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)
+10 −0
Original line number Diff line number Diff line
@@ -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)
+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()
@@ -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,
+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
+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