Check upload form
This commit is contained in:
parent
727387566d
commit
d2fa5ce02f
5 changed files with 54 additions and 22 deletions
|
|
@ -6,10 +6,12 @@ import zipfile
|
|||
from io import BytesIO
|
||||
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.contrib import messages
|
||||
from django.core.mail import mail_managers
|
||||
from django.http import HttpResponse
|
||||
from django.views.generic.detail import DetailView
|
||||
from django.views.generic.edit import FormView
|
||||
from django.urls import reverse_lazy
|
||||
from photologue.models import Gallery
|
||||
from photologue.views import GalleryArchiveIndexView, GalleryYearArchiveView
|
||||
from taggit.models import Tag
|
||||
|
|
@ -96,27 +98,26 @@ class GalleryDownload(LoginRequiredMixin, DetailView):
|
|||
|
||||
|
||||
class GalleryUpload(FormView):
|
||||
"""
|
||||
Form to upload new photos in a gallery
|
||||
"""
|
||||
form_class = UploadForm
|
||||
template_name = "photologue/upload.html"
|
||||
# success_url = '...' # Replace with your URL or reverse().
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
form_class = self.get_form_class()
|
||||
form = self.get_form(form_class)
|
||||
files = request.FILES.getlist('file_field')
|
||||
if form.is_valid():
|
||||
for f in files:
|
||||
print("upload", f)
|
||||
return self.form_valid(form)
|
||||
else:
|
||||
return self.form_invalid(form)
|
||||
success_url = reverse_lazy("gallery-upload")
|
||||
|
||||
def form_valid(self, form):
|
||||
"""
|
||||
Notify moderators about successful upload
|
||||
"""
|
||||
# Upload photos
|
||||
# We take files from the request to support multiple upload
|
||||
files = self.request.FILES.getlist('file_field')
|
||||
form.save(files)
|
||||
|
||||
# Notify user then managers
|
||||
messages.success(self.request, "Photos has been successfully uploaded.")
|
||||
gallery_title = form.cleaned_data['gallery'] or form.cleaned_data.get('new_gallery_title', '')
|
||||
photos = ", ".join(f.name for f in files)
|
||||
mail_managers(
|
||||
subject="New upload",
|
||||
message="", # TODO: put username, gallery and photo names
|
||||
subject="New photos upload",
|
||||
message=f"{self.request.user.username} has uploaded in `{gallery_title}`: {photos}",
|
||||
)
|
||||
|
||||
return super().form_valid(form)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue