Remove extended models
This commit is contained in:
parent
3bc8a2b649
commit
8beedb3626
14 changed files with 66 additions and 155 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue