From 1313d96e8f7da1701fd24a820ad97ec6082d5707 Mon Sep 17 00:00:00 2001 From: Xeniac Date: Thu, 7 Jun 2018 14:18:18 +0200 Subject: [PATCH] * fixed 404 errors in the gallery. --- src/events/mixins.py | 18 +++++++++++++++++- src/events/views.py | 14 ++------------ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/events/mixins.py b/src/events/mixins.py index d9698ab..aa7ae34 100644 --- a/src/events/mixins.py +++ b/src/events/mixins.py @@ -1,6 +1,8 @@ """Mixins for Events.""" +from django.db.models import Q from django.http import Http404 from django.shortcuts import get_object_or_404 + from . import models @@ -54,6 +56,20 @@ class EventDetailMixin(object): self.event = get_object_or_404(models.Event, pk=self.kwargs['pk']) queryset = self.model.objects.all() else: - self.event = get_object_or_404(models.Event, pk=self.kwargs['event']) + self.event = get_object_or_404(models.Event, + pk=self.kwargs['event']) queryset = self.model.objects.filter(event=self.event) return queryset.prefetch_related() + + +class EventPhotoMixin(EventDetailMixin): + + def get_queryset(self): + try: + self.event = models.Event.objects.get(id=self.kwargs['event']) + return models.Photo.objects.filter( + Q(event=self.event) | + Q(event__event_series=self.event) + ) + except models.Event.DoesNotExist: + raise Http404(_('Event does not exist')) diff --git a/src/events/views.py b/src/events/views.py index b22d745..bdf7e63 100644 --- a/src/events/views.py +++ b/src/events/views.py @@ -110,7 +110,7 @@ class EventListIcal(generic.View): return response -class EventPhoto(mixins.EventDetailMixin, generic.UpdateView): +class EventPhoto(mixins.EventPhotoMixin, generic.UpdateView): """Display the requested Photo and allows rotation if the user has change permissions.""" form_class = forms.EditPhotoForm @@ -127,7 +127,7 @@ class EventPhoto(mixins.EventDetailMixin, generic.UpdateView): return generic.UpdateView.post(self, request, *args, **kwargs) -class EventPhotoList(mixins.EventDetailMixin, generic.ListView): +class EventPhotoList(mixins.EventPhotoMixin, generic.ListView): """List all Photos of the event or event series in an album.""" context_object_name = 'photo_list' event = None @@ -139,16 +139,6 @@ class EventPhotoList(mixins.EventDetailMixin, generic.ListView): initial={'event': self.event, 'photographer': self.request.user}) return context - def get_queryset(self): - try: - self.event = models.Event.objects.get(id=self.kwargs['event']) - return models.Photo.objects.filter( - Q(event=self.event) | - Q(event__event_series=self.event) - ) - except models.Event.DoesNotExist: - raise Http404(_('Event does not exist')) - class EventPhotoUpload(mixins.EventDetailMixin, generic.FormView): form_class = forms.PhotoUploadForm