Add upload page

This commit is contained in:
Alexandre Iooss 2021-10-15 10:55:07 +02:00
parent 583a1ffce8
commit 727387566d
5 changed files with 185 additions and 33 deletions

View file

@ -6,12 +6,16 @@ import zipfile
from io import BytesIO
from django.contrib.auth.mixins import LoginRequiredMixin
from django.core.mail import mail_managers
from django.http import HttpResponse
from django.views.generic import DetailView
from django.views.generic.detail import DetailView
from django.views.generic.edit import FormView
from photologue.models import Gallery
from photologue.views import GalleryArchiveIndexView, GalleryYearArchiveView
from taggit.models import Tag
from .forms import UploadForm
class TagDetail(LoginRequiredMixin, DetailView):
model = Tag
@ -89,3 +93,30 @@ class GalleryDownload(LoginRequiredMixin, DetailView):
response = HttpResponse(byte_data.getvalue(), content_type='application/x-zip-compressed')
response['Content-Disposition'] = f"attachment; filename={gallery.slug}.zip"
return response
class GalleryUpload(FormView):
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)
def form_valid(self, form):
"""
Notify moderators about successful upload
"""
mail_managers(
subject="New upload",
message="", # TODO: put username, gallery and photo names
)
return super().form_valid(form)