add a latest method to query the latest x events
This commit is contained in:
@@ -31,6 +31,10 @@ class EventManager(models.Manager):
|
||||
"""Returns all past events."""
|
||||
return self.filter(start__lt=now())
|
||||
|
||||
def latest(self, limit=None):
|
||||
result = self.filter(start__lt=now()).order_by('-start', '-end')
|
||||
return result[0:limit] if limit else result
|
||||
|
||||
def upcoming(self, limit=None):
|
||||
"""Returns the next 'limit' upcoming events.
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
"""Mixins for Events."""
|
||||
from django.http import Http404
|
||||
|
||||
from . import models
|
||||
|
||||
|
||||
@@ -9,7 +11,6 @@ class EventArchiveMixin(object):
|
||||
date_field = 'start'
|
||||
make_object_list = True
|
||||
model = models.Event
|
||||
ordering = ('start', 'end')
|
||||
paginate_by = 15
|
||||
template_name = 'events/event_archive.html'
|
||||
|
||||
@@ -40,3 +41,16 @@ class EventDetailMixin(object):
|
||||
elif hasattr(self, 'object') and hasattr(self.object, 'event'):
|
||||
context['event'] = self.object.event
|
||||
return context
|
||||
|
||||
def get_queryset(self):
|
||||
"""set event attribute from the URL kwarg event and
|
||||
load all related objects from the set model.
|
||||
|
||||
:return: a django QuerySets
|
||||
"""
|
||||
try:
|
||||
self.event = models.Event.objects.get(pk=self.kwargs['event'])
|
||||
queryset = self.model.objects.filter(event=self.event)
|
||||
except models.Event.DoesNotExist:
|
||||
raise Http404(_('Event does not exist'))
|
||||
return queryset.prefetch_related()
|
||||
|
||||
@@ -30,7 +30,6 @@ class DeleteEventPhoto(PermissionRequiredMixin, mixins.EventDetailMixin,
|
||||
class EventArchiveIndex(mixins.EventArchiveMixin, generic.ArchiveIndexView):
|
||||
"""Index of the event archive, displays the upcoming events first."""
|
||||
allow_empty = True
|
||||
ordering = ('-start', '-end')
|
||||
|
||||
|
||||
class EventArchiveMonth(mixins.EventArchiveMixin, generic.MonthArchiveView):
|
||||
@@ -73,7 +72,7 @@ class EventForm(PermissionRequiredMixin, mixins.EventDetailMixin,
|
||||
if self.kwargs.get('pk') else models.Event()
|
||||
|
||||
|
||||
class EventGallery(mixins.EventDetailMixin, generic.ListView):
|
||||
class EventGallery(generic.ListView):
|
||||
"""Display a overview of all event photo albums."""
|
||||
template_name = 'events/photo_gallery.html'
|
||||
queryset = models.Event.objects.filter(
|
||||
|
||||
Reference in New Issue
Block a user