diff --git a/photologue/views.py b/photologue/views.py index af1249d..e0cf0a6 100644 --- a/photologue/views.py +++ b/photologue/views.py @@ -193,6 +193,7 @@ class GalleryUpload(PermissionRequiredMixin, FormView): gallery_year = Path(str(gallery.date_start.year)) gallery_dir = gallery_year / gallery.slug failed_upload = 0 + already_exists = 0 for photo_file in files: # Check that we have a valid image try: @@ -214,21 +215,21 @@ class GalleryUpload(PermissionRequiredMixin, FormView): owner=self.request.user, ) photo_name = str(gallery_dir / photo_file.name) - photo.image.save(photo_name, photo_file) photo.save() photo.galleries.set([gallery]) + + # Save to disk after successful database edit + photo.image.save(photo_name, photo_file) except IntegrityError: - messages.error( - self.request, - f"{photo_file.name} was not uploaded. Maybe the photo was already uploaded.", - ) - failed_upload += 1 + already_exists += 1 # Notify user then managers - if not failed_upload: - messages.success(self.request, "All photos has been successfully uploaded.") + n_success = len(files) - failed_upload - already_exists + if already_exists: + messages.success(self.request, f"{n_success} photos has been successfully uploaded, {already_exists} photos were skipped as they already exist in this gallery.") + elif not failed_upload: + messages.success(self.request, f"All {n_success} photos has been successfully uploaded.") else: - n_success = len(files) - failed_upload messages.warning( self.request, f"Only {n_success} photos were successfully uploaded !" )