diff --git a/src/pretix/base/migrations/0060_auto_20170510_1027.py b/src/pretix/base/migrations/0060_auto_20170510_1027.py
new file mode 100644
index 0000000000..23588bdca4
--- /dev/null
+++ b/src/pretix/base/migrations/0060_auto_20170510_1027.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.7 on 2017-05-10 10:27
+from __future__ import unicode_literals
+
+import i18nfield.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('pretixbase', '0059_checkin_nonce'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='event',
+ name='date_admission',
+ field=models.DateTimeField(blank=True, null=True, verbose_name='Admission time'),
+ ),
+ migrations.AlterField(
+ model_name='event',
+ name='location',
+ field=i18nfield.fields.I18nTextField(blank=True, max_length=200, null=True, verbose_name='Location'),
+ ),
+ ]
diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py
index 3316418364..94e234ad77 100644
--- a/src/pretix/base/models/event.py
+++ b/src/pretix/base/models/event.py
@@ -13,7 +13,7 @@ from django.template.defaultfilters import date as _date
from django.utils.crypto import get_random_string
from django.utils.timezone import make_aware, now
from django.utils.translation import ugettext_lazy as _
-from i18nfield.fields import I18nCharField
+from i18nfield.fields import I18nCharField, I18nTextField
from pretix.base.email import CustomSMTPBackend
from pretix.base.models.base import LoggedModel
@@ -85,6 +85,8 @@ class Event(LoggedModel):
date_from = models.DateTimeField(verbose_name=_("Event start time"))
date_to = models.DateTimeField(null=True, blank=True,
verbose_name=_("Event end time"))
+ date_admission = models.DateTimeField(null=True, blank=True,
+ verbose_name=_("Admission 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 "
@@ -99,7 +101,7 @@ class Event(LoggedModel):
verbose_name=_("Start of presale"),
help_text=_("No products will be sold before this date."),
)
- location = I18nCharField(
+ location = I18nTextField(
null=True, blank=True,
max_length=200,
verbose_name=_("Location"),
diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py
index 808e4604c0..e2bb50690b 100644
--- a/src/pretix/control/forms/event.py
+++ b/src/pretix/control/forms/event.py
@@ -143,6 +143,7 @@ class EventUpdateForm(I18nModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['slug'].widget.attrs['readonly'] = 'readonly'
+ self.fields['location'].widget.attrs['rows'] = '3'
class Meta:
model = Event
@@ -153,6 +154,7 @@ class EventUpdateForm(I18nModelForm):
'currency',
'date_from',
'date_to',
+ 'date_admission',
'is_public',
'presale_start',
'presale_end',
@@ -161,6 +163,7 @@ class EventUpdateForm(I18nModelForm):
widgets = {
'date_from': forms.DateTimeInput(attrs={'class': 'datetimepicker'}),
'date_to': forms.DateTimeInput(attrs={'class': 'datetimepicker', 'data-date-after': '#id_date_from'}),
+ 'date_admission': forms.DateTimeInput(attrs={'class': 'datetimepicker'}),
'presale_start': forms.DateTimeInput(attrs={'class': 'datetimepicker'}),
'presale_end': forms.DateTimeInput(attrs={'class': 'datetimepicker',
'data-date-after': '#id_presale_start'}),
diff --git a/src/pretix/control/templates/pretixcontrol/event/settings.html b/src/pretix/control/templates/pretixcontrol/event/settings.html
index 82019bcf63..a98cd90833 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.location layout="horizontal" %}
+ {% bootstrap_field form.date_admission layout="horizontal" %}
{% bootstrap_field form.currency layout="horizontal" %}
{% bootstrap_field form.is_public layout="horizontal" %}
diff --git a/src/pretix/helpers/formats/en/formats.py b/src/pretix/helpers/formats/en/formats.py
index 0bf19be33f..28f35153b5 100644
--- a/src/pretix/helpers/formats/en/formats.py
+++ b/src/pretix/helpers/formats/en/formats.py
@@ -1,3 +1,4 @@
# Date according to https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
SHORT_DATE_FORMAT = 'Y-m-d'
SHORT_DATETIME_FORMAT = 'Y-m-d H:i'
+TIME_FORMAT = 'H:i'
diff --git a/src/pretix/plugins/ticketoutputpdf/ticketoutput.py b/src/pretix/plugins/ticketoutputpdf/ticketoutput.py
index 00420c6453..6cde8a1ee0 100644
--- a/src/pretix/plugins/ticketoutputpdf/ticketoutput.py
+++ b/src/pretix/plugins/ticketoutputpdf/ticketoutput.py
@@ -82,7 +82,7 @@ class PdfTicketOutput(BaseTicketOutput):
elif o['content'] == 'event_name':
return str(order.event)
elif o['content'] == 'event_location':
- return str(order.event.location)
+ return str(order.event.location).replace("\n", "
\n")
elif o['content'] == 'event_date':
return order.event.get_date_from_display(show_times=False)
elif o['content'] == 'event_begin_time':
diff --git a/src/pretix/presale/templates/pretixpresale/event/index.html b/src/pretix/presale/templates/pretixpresale/event/index.html
index 15ddac8bc4..48d3d2757a 100644
--- a/src/pretix/presale/templates/pretixpresale/event/index.html
+++ b/src/pretix/presale/templates/pretixpresale/event/index.html
@@ -28,7 +28,8 @@
- - {% trans "Add to Calendar" %} - -
+ + + {% if event.location %} ++ {{ event.location|linebreaksbr }} +
+
+ {% if event.settings.show_times %}
+ {% blocktrans trimmed with time=event.date_from|date:"TIME_FORMAT" %}
+ Begin: {{ time }}
+ {% endblocktrans %}
+ {% endif %}
+ {% if event.date_admission and event.settings.show_times %}
+
+ {% endif %}
+ {% if event.date_admission %}
+ {% if event.date_admission|date:"SHORT_DATE_FORMAT" == event.date_from|date:"SHORT_DATE_FORMAT" %}
+ {% blocktrans trimmed with time=event.date_admission|date:"TIME_FORMAT" %}
+ Admission: {{ time }}
+ {% endblocktrans %}
+ {% else %}
+ {% blocktrans trimmed with datetime=event.date_admission|date:"SHORT_DATETIME_FORMAT" %}
+ Admission: {{ datetime }}
+ {% endblocktrans %}
+ {% endif %}
+ {% endif %}
+
+
+ {% trans "Add to Calendar" %}
+
+
- {% blocktrans trimmed with num=item.min_per_order %} - minimum amount to order: {{ num }} - {% endblocktrans %} -
++ + {% blocktrans trimmed with num=item.min_per_order %} + minimum amount to order: {{ num }} + {% endblocktrans %} + +
{% endif %}- {% blocktrans trimmed with num=item.min_per_order %} - minimum amount to order: {{ num }} - {% endblocktrans %} -
++ + {% blocktrans trimmed with num=item.min_per_order %} + minimum amount to order: {{ num }} + {% endblocktrans %} + +
{% endif %}