1 from django
.shortcuts
import get_object_or_404
2 from django
.http
import Http404
, HttpResponsePermanentRedirect
3 from django
.template
.defaultfilters
import slugify
5 from datetime
import date
7 from pgweb
.util
.contexts
import render_pgweb
9 from .models
import Event
13 return render_pgweb(request
, 'about', 'events/archive.html', {
14 'title': 'Upcoming Events',
15 'events': Event
.objects
.select_related('country').filter(approved
=True, enddate__gt
=date
.today()).order_by('enddate', 'startdate'),
19 def _eventarchive(request
, title
):
20 # Hardcode to the latest 100 events. Do we need paging too?
21 events
= Event
.objects
.select_related('country', 'language').filter(approved
=True).filter(enddate__lte
=date
.today()).order_by('-enddate', '-startdate',)[:100]
22 return render_pgweb(request
, 'about', 'events/archive.html', {
23 'title': '%s Archive' % title
,
30 return _eventarchive(request
, 'Event')
33 def item(request
, itemid
, slug
=None):
34 event
= get_object_or_404(Event
, pk
=itemid
)
35 if not event
.approved
:
38 if slug
!= slugify(event
.title
):
39 return HttpResponsePermanentRedirect('/about/event/{}-{}/'.format(slugify(event
.title
), event
.id))
41 return render_pgweb(request
, 'about', 'events/item.html', {