From 232c42b265bdbcd535dca2dec98c73dbca9becd9 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 22 Oct 2015 17:45:19 +0200 Subject: [PATCH] Added an organizer overview page --- .../base/migrations/0003_event_is_public.py | 19 ++++ src/pretix/base/models/event.py | 4 + src/pretix/base/templatetags/__init__.py | 0 src/pretix/base/templatetags/urlreplace.py | 10 ++ src/pretix/control/forms/event.py | 1 + .../pretixcontrol/event/settings.html | 1 + .../templates/pretixcontrol/pagination.html | 5 +- src/pretix/multidomain/maindomain_urlconf.py | 7 +- src/pretix/multidomain/subdomain_urlconf.py | 8 +- .../multidomain/templatetags/eventurl.py | 2 +- src/pretix/multidomain/urlreverse.py | 28 ++++-- src/pretix/presale/middleware.py | 29 +++--- .../presale/templates/pretixpresale/base.html | 49 ++++++++++ .../templates/pretixpresale/event/base.html | 53 ++-------- .../pretixpresale/organizers/base.html | 26 +++++ .../pretixpresale/organizers/index.html | 61 ++++++++++++ .../templates/pretixpresale/pagination.html | 27 ++++++ src/pretix/presale/urls.py | 5 + src/pretix/presale/views/__init__.py | 26 ++--- src/pretix/presale/views/organizer.py | 25 +++++ src/tests/multidomain/test_middlewares.py | 8 ++ src/tests/multidomain/test_urlreverse.py | 2 + src/tests/presale/test_organizer_page.py | 96 +++++++++++++++++++ 23 files changed, 400 insertions(+), 92 deletions(-) create mode 100644 src/pretix/base/migrations/0003_event_is_public.py create mode 100644 src/pretix/base/templatetags/__init__.py create mode 100644 src/pretix/base/templatetags/urlreplace.py create mode 100644 src/pretix/presale/templates/pretixpresale/base.html create mode 100644 src/pretix/presale/templates/pretixpresale/organizers/base.html create mode 100644 src/pretix/presale/templates/pretixpresale/organizers/index.html create mode 100644 src/pretix/presale/templates/pretixpresale/pagination.html create mode 100644 src/pretix/presale/views/organizer.py create mode 100644 src/tests/presale/test_organizer_page.py diff --git a/src/pretix/base/migrations/0003_event_is_public.py b/src/pretix/base/migrations/0003_event_is_public.py new file mode 100644 index 0000000000..3383f86723 --- /dev/null +++ b/src/pretix/base/migrations/0003_event_is_public.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pretixbase', '0002_auto_20151021_1412'), + ] + + operations = [ + migrations.AddField( + model_name='event', + name='is_public', + field=models.BooleanField(help_text="If selected, this event may show up on the ticket system's start page or an organization profile.", default=False, verbose_name='Visible in public lists'), + ), + ] diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index aac6748620..66e5dfa0a7 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -73,6 +73,10 @@ class Event(Versionable): date_from = models.DateTimeField(verbose_name=_("Event start time")) date_to = models.DateTimeField(null=True, blank=True, verbose_name=_("Event end time")) + is_public = models.BooleanField(default=False, + verbose_name=_("Visible in public lists"), + help_text=_("If selected, this event may show up on the ticket system's start page " + "or an organization profile.")) presale_end = models.DateTimeField( null=True, blank=True, verbose_name=_("End of presale"), diff --git a/src/pretix/base/templatetags/__init__.py b/src/pretix/base/templatetags/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/pretix/base/templatetags/urlreplace.py b/src/pretix/base/templatetags/urlreplace.py new file mode 100644 index 0000000000..cd9e794875 --- /dev/null +++ b/src/pretix/base/templatetags/urlreplace.py @@ -0,0 +1,10 @@ +from django import template + +register = template.Library() + + +@register.simple_tag +def url_replace(request, field, value): + dict_ = request.GET.copy() + dict_[field] = value + return dict_.urlencode() diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py index c5fd6aa3bd..fe4ddbf3cc 100644 --- a/src/pretix/control/forms/event.py +++ b/src/pretix/control/forms/event.py @@ -56,6 +56,7 @@ class EventUpdateForm(VersionedModelForm): 'currency', 'date_from', 'date_to', + 'is_public', 'presale_start', 'presale_end', ] diff --git a/src/pretix/control/templates/pretixcontrol/event/settings.html b/src/pretix/control/templates/pretixcontrol/event/settings.html index 5d5964abc6..c7275267fd 100644 --- a/src/pretix/control/templates/pretixcontrol/event/settings.html +++ b/src/pretix/control/templates/pretixcontrol/event/settings.html @@ -12,6 +12,7 @@ {% bootstrap_field form.date_from layout="horizontal" %} {% bootstrap_field form.date_to layout="horizontal" %} {% bootstrap_field form.currency layout="horizontal" %} + {% bootstrap_field form.is_public layout="horizontal" %}
{% trans "Display settings" %} diff --git a/src/pretix/control/templates/pretixcontrol/pagination.html b/src/pretix/control/templates/pretixcontrol/pagination.html index fb7f2bbfe0..6872936953 100644 --- a/src/pretix/control/templates/pretixcontrol/pagination.html +++ b/src/pretix/control/templates/pretixcontrol/pagination.html @@ -1,10 +1,11 @@ {% load i18n %} +{% load urlreplace %} {% if is_paginated %}