diff --git a/src/tixlbase/models.py b/src/tixlbase/models.py
index eaad76577a..06a87841aa 100644
--- a/src/tixlbase/models.py
+++ b/src/tixlbase/models.py
@@ -2,6 +2,7 @@ from django.db import models
from django.conf import settings
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, PermissionsMixin
from django.utils.translation import ugettext_lazy as _
+from django.template.defaultfilters import date as _date
class UserManager(BaseUserManager):
@@ -244,6 +245,20 @@ class Event(models.Model):
verbose_name=_("Last date of payments")
)
+ def get_date_from_display(self):
+ return _date(
+ self.date_from,
+ "DATETIME_FORMAT" if self.show_times else "DATE_FORMAT"
+ )
+
+ def get_date_to_display(self):
+ if not self.show_date_to:
+ return ""
+ return _date(
+ self.date_to,
+ "DATETIME_FORMAT" if self.show_times else "DATE_FORMAT"
+ )
+
def __str__(self):
return self.name
diff --git a/src/tixlcontrol/context.py b/src/tixlcontrol/context.py
index 27766ad082..ef43dd4295 100644
--- a/src/tixlcontrol/context.py
+++ b/src/tixlcontrol/context.py
@@ -1,7 +1,9 @@
from django.conf import settings
+from django.core.urlresolvers import resolve
def contextprocessor(request):
return {
+ 'url_name': resolve(request.path_info).url_name,
'settings': settings,
}
diff --git a/src/tixlcontrol/templates/tixlcontrol/base.html b/src/tixlcontrol/templates/tixlcontrol/base.html
index 9d03b47254..4c8d82c43a 100644
--- a/src/tixlcontrol/templates/tixlcontrol/base.html
+++ b/src/tixlcontrol/templates/tixlcontrol/base.html
@@ -4,7 +4,7 @@
- {{ settings.TIXL_INSTANCE_NAME }}
+ {% block title %}{% endblock %}{% if url_name != "index" %} :: {% endif %}{{ settings.TIXL_INSTANCE_NAME }}
{% compress css %}
{% endcompress %}
@@ -23,7 +23,10 @@
- {{ request.user.get_full_name }}
diff --git a/src/tixlcontrol/templates/tixlcontrol/events/index.html b/src/tixlcontrol/templates/tixlcontrol/events/index.html
new file mode 100644
index 0000000000..6444def95f
--- /dev/null
+++ b/src/tixlcontrol/templates/tixlcontrol/events/index.html
@@ -0,0 +1,27 @@
+{% extends "tixlcontrol/base.html" %}
+{% load i18n %}
+{% block title %}{% trans "Events" %}{% endblock %}
+{% block content %}
+ {% trans "Events" %}
+ {% trans "The list below shows all events you have administrative access to. Click on the event name to access event details." %}
+
+
+
+ | {% trans "Event name" %} |
+ {% trans "Organizer" %} |
+ {% trans "Start date" %} |
+ {% trans "End date" %} |
+
+
+
+ {% for e in events %}
+
+ | {{ e.name }} |
+ {{ e.organizer }} |
+ {{ e.get_date_from_display }} |
+ {{ e.get_date_to_display }} |
+
+ {% endfor %}
+
+
+{% endblock %}
diff --git a/src/tixlcontrol/urls.py b/src/tixlcontrol/urls.py
index 1e0432aa2d..9a78099087 100644
--- a/src/tixlcontrol/urls.py
+++ b/src/tixlcontrol/urls.py
@@ -1,7 +1,9 @@
from django.conf.urls import patterns, url
+from tixlcontrol.views import main
urlpatterns = patterns('',
url(r'^$', 'tixlcontrol.views.main.index', name='index'),
+ url(r'^events/$', main.EventList.as_view(), name='events'),
url(r'^logout$', 'tixlcontrol.views.auth.logout', name='auth.logout'),
url(r'^login$', 'tixlcontrol.views.auth.login', name='auth.login'),
)
diff --git a/src/tixlcontrol/views/main.py b/src/tixlcontrol/views/main.py
index d52d69b01f..c080e584f1 100644
--- a/src/tixlcontrol/views/main.py
+++ b/src/tixlcontrol/views/main.py
@@ -1,5 +1,20 @@
-from django.http import HttpResponse
from django.shortcuts import render
+from django.views.generic import ListView
+
+from tixlbase.models import Event
+
+
+class EventList(ListView):
+ model = Event
+ context_object_name = 'events'
+ template_name = 'tixlcontrol/events/index.html'
+
+ def get_queryset(self):
+ return Event.objects.filter(
+ permitted__id__exact=self.request.user.pk
+ ).prefetch_related(
+ "organizer",
+ )
def index(request):