Add a continious upload V0

This commit is contained in:
Lewis7Lewis 2025-10-11 23:26:41 +02:00
parent 9ca3a71fc3
commit 5fac72bb46
2 changed files with 130 additions and 13 deletions

View file

@ -12,6 +12,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMix
from django.core.mail import mail_admins
from django.db import IntegrityError
from django.http import HttpResponse
from django.http import JsonResponse
from django.shortcuts import redirect
from django.urls import reverse_lazy
from django.utils.text import slugify
@ -189,7 +190,17 @@ class GalleryUpload(PermissionRequiredMixin, FormView):
def form_valid(self, form):
# Get or create gallery
if form.data.get("reptype","")=="json":
response_json = True
finish_json = form.data.get("end","")=="end"
else :
response_json = False
gallery = form.get_or_create_gallery()
jsondata = {"galleryID":gallery.id,"code":200}
gallery_year = Path(str(gallery.date_start.year))
gallery_dir = gallery_year / gallery.slug
@ -207,6 +218,8 @@ class GalleryUpload(PermissionRequiredMixin, FormView):
messages.error(
self.request, f"{photo_file.name} was not recognized as an image"
)
jsondata["code"]=400
jsondata["error"] = f"{photo_file.name} was not recognized as an image"
continue
title = f"{gallery.title} - {photo_file.name}"
@ -228,24 +241,38 @@ class GalleryUpload(PermissionRequiredMixin, FormView):
uploaded_photo_name.append(photo_file.name)
# Notify user then managers
n_success = len(uploaded_photo_name)
if already_exists:
messages.success(
self.request,
f"{n_success} photo(s) uploaded, {already_exists} photo(s) skipped as they already exist in this gallery.",
)
else:
messages.success(self.request, f"{n_success} photo(s) uploaded.")
if not response_json :
if already_exists:
messages.success(
self.request,
f"{n_success} photo(s) uploaded, {already_exists} photo(s) skipped as they already exist in this gallery.",
)
else:
messages.success(self.request, f"{n_success} photo(s) uploaded.")
# Notify administrators on new uploads
gallery_url = reverse_lazy("photologue:pl-gallery", args=[gallery.slug])
gallery_url = self.request.build_absolute_uri(gallery_url)
if uploaded_photo_name:
if uploaded_photo_name and (not response_json):
photos = ", ".join(uploaded_photo_name)
mail_admins(
subject=f"New upload from {self.request.user.username}",
message=f"{self.request.user.username} has uploaded in <{gallery_url}>:\n{photos}",
)
return super().form_valid(form)
elif response_json and finish_json :
photos = ", ".join(uploaded_photo_name)
mail_admins(
subject=f"New continious upload from {self.request.user.username}",
message=f"{self.request.user.username} has uploaded multiples photo with continious upload in <{gallery_url}>",
)
if response_json :
jsondata["uploadeds"] = uploaded_photo_name
return JsonResponse(jsondata)
else :
return super().form_valid(form)