Files
postgres-web/pgweb/events/views.py
Magnus Hagander 2cad1799ed Actually implement a way to look at older events (events archive)
This also changes the main URL to look at events to be /about/events/
instead of /about/eventsarchive/, and reuses /about/eventsarchive/ to
be the actual achive. Also separates out the training archive to it's
own page at /about/eventsarchive/training/, for easier browsing.
2013-01-30 14:28:16 +01:00

57 lines
2.0 KiB
Python

from django.shortcuts import render_to_response, get_object_or_404
from django.http import HttpResponse, Http404, HttpResponseRedirect
from django.template import TemplateDoesNotExist, loader, Context
from django.contrib.auth.decorators import login_required
from datetime import date
from pgweb.util.decorators import ssl_required
from pgweb.util.contexts import NavContext
from pgweb.util.helpers import simple_form
from models import Event
from forms import EventForm
def main(request):
events = Event.objects.select_related('country').filter(approved=True).filter(training=False, enddate__gt=date.today).order_by('enddate', 'startdate',)
training = Event.objects.select_related('country').filter(approved=True).filter(training=True, enddate__gt=date.today).order_by('enddate', 'startdate',)
return render_to_response('events/archive.html', {
'title': 'Current events',
'eventblocks': (
{ 'name': 'Events', 'events': events, 'link': '',},
{ 'name': 'Training', 'events': training, 'link': 'training/',},
),
}, NavContext(request, 'about'))
def _eventarchive(request, training, title):
# Hardcode to the latest 100 events. Do we need paging too?
events = Event.objects.select_related('country').filter(approved=True).filter(training=training, enddate__lte=date.today).order_by('-enddate', '-startdate',)[:100]
return render_to_response('events/archive.html', {
'title': '%s Archive' % title,
'archive': True,
'eventblocks': (
{'name': title, 'events': events, },
),
}, NavContext(request, 'about'))
def archive(request):
return _eventarchive(request, False, 'Event')
def trainingarchive(request):
return _eventarchive(request, True, 'Training')
def item(request, itemid, throwaway=None):
event = get_object_or_404(Event, pk=itemid)
if not event.approved:
raise Http404
return render_to_response('events/item.html', {
'obj': event,
}, NavContext(request, 'about'))
@ssl_required
@login_required
def form(request, itemid):
return simple_form(Event, itemid, request, EventForm,
redirect='/account/edit/events/')