Everyone's favourite, past events, now working and loading in ~800ms

This commit is contained in:
Tom Price
2015-01-26 15:06:39 +00:00
parent 13ce96809b
commit 9c9dc07929
4 changed files with 73 additions and 1 deletions

View File

@@ -10,10 +10,12 @@ from django.template import Context, RequestContext
from django.template.loader import get_template
from django.conf import settings
from django.http import HttpResponse
from django.db.models import Q
from z3c.rml import rml2pdf
from PyPDF2 import PdfFileMerger, PdfFileReader
from RIGS import models, forms
import datetime
__author__ = 'ghost'
@@ -113,4 +115,28 @@ class EventDuplicate(generic.RedirectView):
item.event = new
item.save()
return reverse_lazy('event_update', kwargs={'pk': new.pk})
return reverse_lazy('event_update', kwargs={'pk': new.pk})
class EventArchive(generic.ArchiveIndexView):
model = models.Event
date_field = "start_date"
paginate_by = 25
def get_queryset(self):
start = self.request.GET.get('start', None)
end = self.request.GET.get('end', datetime.date.today())
filter = False
if end != "":
filter = Q(start_date__lte=end)
if start:
if filter:
filter = filter & Q(start_date__gte=start)
else:
filter = Q(start_date__gte=start)
if filter:
qs = self.model.objects.filter(filter)
else:
qs = self.model.objects.all()
return qs.select_related('person','organisation','venue','mic')

View File

@@ -0,0 +1,45 @@
{% extends 'base.html' %}
{% load paginator from filters %}
{% block title %}Event Archive{% endblock %}
{% block content %}
<div class="row">
<h2>Event Archive</h2>
<div class="col-sm-12 col-md-6 pagination">
<form class="form-inline">
<div class="form-group">
<label for="start">Start</label>
<input type="date" name="start" id="start" value="{{ request.GET.start }}" placeholder="Start" class="form-control" />
</div>
<div class="form-group">
<label for="end">End</label>
<input type="date" name="end" id="end" value="{% if request.GET.end %}{{ request.GET.end }}{% else %}{% now "Y-m-d" %}{% endif %}" placeholder="End" class="form-control" />
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary" />
</div>
</form>
</div>
{% if is_paginated %}
<div class="col-md-6 text-right">
{% paginator %}
</div>
{% endif %}
</div>
<div class="row">
{% with latest as events %}
{% include 'RIGS/event_table.html' %}
{% endwith %}
</div>
{% if is_paginated %}
<div class="row">
<div class="text-right">
{% paginator %}
</div>
</div>
{% endif %}
{% endblock %}

View File

@@ -71,6 +71,7 @@ urlpatterns = patterns('',
url(r'^event/(?P<pk>\d+)/duplicate/$',
permission_required_with_403('RIGS.add_event')(rigboard.EventDuplicate.as_view()),
name='event_duplicate'),
url(r'^event/archive/$', login_required()(rigboard.EventArchive.as_view()), name='event_archive'),
# API
url(r'^api/(?P<model>\w+)/$', (views.SecureAPIRequest.as_view()), name="api_secure"),

Binary file not shown.