Update NPO text.
[pgweb.git] / pgweb / events / views.py
blob10b7253be1ebc47a76b82d7b8d71ce20018ece58
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
12 def main(request):
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,
24 'archive': True,
25 'events': events,
29 def archive(request):
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:
36 raise Http404
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', {
42 'obj': event,