* fixed 404 errors in the gallery.

This commit is contained in:
2018-06-07 14:18:18 +02:00
parent f2836baae5
commit 1313d96e8f
2 changed files with 19 additions and 13 deletions

View File

@@ -1,6 +1,8 @@
"""Mixins for Events.""" """Mixins for Events."""
from django.db.models import Q
from django.http import Http404 from django.http import Http404
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from . import models from . import models
@@ -54,6 +56,20 @@ class EventDetailMixin(object):
self.event = get_object_or_404(models.Event, pk=self.kwargs['pk']) self.event = get_object_or_404(models.Event, pk=self.kwargs['pk'])
queryset = self.model.objects.all() queryset = self.model.objects.all()
else: 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) queryset = self.model.objects.filter(event=self.event)
return queryset.prefetch_related() 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'))

View File

@@ -110,7 +110,7 @@ class EventListIcal(generic.View):
return response 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 """Display the requested Photo and allows rotation if the user has change
permissions.""" permissions."""
form_class = forms.EditPhotoForm form_class = forms.EditPhotoForm
@@ -127,7 +127,7 @@ class EventPhoto(mixins.EventDetailMixin, generic.UpdateView):
return generic.UpdateView.post(self, request, *args, **kwargs) 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.""" """List all Photos of the event or event series in an album."""
context_object_name = 'photo_list' context_object_name = 'photo_list'
event = None event = None
@@ -139,16 +139,6 @@ class EventPhotoList(mixins.EventDetailMixin, generic.ListView):
initial={'event': self.event, 'photographer': self.request.user}) initial={'event': self.event, 'photographer': self.request.user})
return context 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): class EventPhotoUpload(mixins.EventDetailMixin, generic.FormView):
form_class = forms.PhotoUploadForm form_class = forms.PhotoUploadForm