Remove extended models

This commit is contained in:
Alexandre Iooss 2022-01-30 10:53:58 +01:00
parent 3bc8a2b649
commit 8beedb3626
14 changed files with 66 additions and 155 deletions

View file

@ -16,12 +16,10 @@ from django.urls import reverse_lazy
from django.utils.text import slugify
from django.views.generic.detail import DetailView
from django.views.generic.edit import FormView
from photologue.models import Gallery, Photo
from photologue.models import Gallery, Photo, Tag
from PIL import Image
from taggit.models import Tag
from .forms import UploadForm
from .models import PhotoExtended
class TagDetail(LoginRequiredMixin, DetailView):
@ -34,8 +32,8 @@ class TagDetail(LoginRequiredMixin, DetailView):
current_tag = self.get_object().slug
context = super().get_context_data(**kwargs)
context['galleries'] = Gallery.objects.filter(is_public=True) \
.filter(extended__tags__slug=current_tag) \
.order_by('-extended__date_start')
.filter(tags__slug=current_tag) \
.order_by('-date_start')
return context
@ -48,18 +46,18 @@ class CustomGalleryDetailView(LoginRequiredMixin, DetailView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# Query with extended and owner to reduce database lag
context['photos'] = self.object.public().select_related('extended__owner')
# Query with owner to reduce database lag
context['photos'] = self.object.public().select_related('owner')
# List owners
context['owners'] = []
for photo in context['photos']:
if hasattr(photo, 'extended') and photo.extended.owner not in context['owners']:
context['owners'].append(photo.extended.owner)
if photo.owner not in context['owners']:
context['owners'].append(photo.owner)
# Filter on owner
if 'owner' in self.kwargs:
context['photos'] = context['photos'].filter(extended__owner__id=self.kwargs['owner'])
context['photos'] = context['photos'].filter(owner__id=self.kwargs['owner'])
return context
@ -100,7 +98,7 @@ class GalleryUpload(PermissionRequiredMixin, FormView):
# We take files from the request to support multiple upload
files = self.request.FILES.getlist('file_field')
gallery = form.get_or_create_gallery()
gallery_year = Path(str(gallery.extended.date_start.year))
gallery_year = Path(str(gallery.date_start.year))
gallery_dir = gallery_year / gallery.slug
failed_upload = 0
for photo_file in files:
@ -116,12 +114,15 @@ class GalleryUpload(PermissionRequiredMixin, FormView):
title = f"{gallery.title} - {photo_file.name}"
try:
photo = Photo(title=title, slug=slugify(title))
photo = Photo(
title=title,
slug=slugify(title),
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])
PhotoExtended.objects.create(photo=photo, owner=self.request.user)
except IntegrityError:
messages.error(self.request, f"{photo_file.name} was not uploaded. Maybe the photo was already uploaded.")
failed_upload += 1