Display event selection within iframes

This commit is contained in:
Raphael Michel
2017-12-22 13:38:48 +01:00
parent 8c0fb90420
commit 954b7f6d9e
5 changed files with 32 additions and 15 deletions

View File

@@ -1,9 +1,16 @@
{% load i18n %}
{% load eventurl %}
<form class="form-inline" method="get" id="monthselform" action="{% eventurl event "presale:event.index" %}">
{% load urlreplace %}
<form class="form-inline" method="get" id="monthselform" action="{% eventurl event "presale:event.index" cart_namespace=cart_namespace %}">
{% for f, v in request.GET.items %}
{% if f != "month" and f != "year" %}
<input type="hidden" name="{{ f }}" value="{{ v }}">
{% endif %}
{% endfor %}
<div class="row">
<div class="col-sm-4 hidden-xs">
<a href="{% eventurl event "presale:event.index" %}?year={{ before.year }}&month={{ before.month }}" class="btn btn-default">
<a href="?{% url_replace request "year" before.year "month" before.month %}"
class="btn btn-default">
<span class="fa fa-arrow-left"></span>
{{ before|date:"F Y" }}
</a>
@@ -24,7 +31,7 @@
</button>
</div>
<div class="col-sm-4 hidden-xs text-right">
<a href="{% eventurl event "presale:event.index" %}?year={{ after.year }}&month={{ after.month }}" class="btn btn-default">
<a href="?{% url_replace request "year" after.year "month" after.month %}" class="btn btn-default">
<span class="fa fa-arrow-right"></span>
{{ after|date:"F Y" }}
</a>

View File

@@ -1,7 +1,8 @@
{% load i18n %}
{% load eventurl %}
{% for subev in event.active_future_subevents %}
<a href="{% eventurl event "presale:event.index" subevent=subev.id %}" class="subevent-row">
<a href="{% eventurl event "presale:event.index" subevent=subev.id cart_namespace=cart_namespace %}"
class="subevent-row">
<div class="row">
<div class="col-md-6">
<strong>{{ subev.name }}</strong>

View File

@@ -81,7 +81,7 @@
</div>
{% endif %}
{% if event.has_subevents and not cart_namespace %}
{% if show_dates %}
{% if subevent %}
<a class="subevent-toggle">
{% trans "View other date" %}
@@ -90,7 +90,7 @@
<h3>{% trans "Choose date to buy a ticket" %}</h3>
{% endif %}
<div class="subevent-list">
{% if event.settings.event_list_type == "calendar" %}
{% if list_type == "calendar" %}
{% include "pretixpresale/event/fragment_subevent_calendar.html" %}
{% else %}
{% include "pretixpresale/event/fragment_subevent_list.html" %}

View File

@@ -241,7 +241,9 @@ class EventIndex(EventViewMixin, CartMixin, TemplateView):
else:
context['frontpage_text'] = str(self.request.event.settings.frontpage_text)
if self.request.event.settings.event_list_type == "calendar":
context['list_type'] = self.request.GET.get("style", self.request.event.settings.event_list_type)
if context['list_type'] == "calendar":
self._set_month_year()
tz = pytz.timezone(self.request.event.settings.timezone)
_, ndays = calendar.monthrange(self.year, self.month)
@@ -253,7 +255,8 @@ class EventIndex(EventViewMixin, CartMixin, TemplateView):
context['after'] = after
ebd = defaultdict(list)
add_subevents_for_days(self.request.event.subevents.all(), before, after, ebd, set(), self.request.event)
add_subevents_for_days(self.request.event.subevents.all(), before, after, ebd, set(), self.request.event,
kwargs.get('cart_namespace'))
context['weeks'] = weeks_for_template(ebd, self.year, self.month)
context['months'] = [date(self.year, i + 1, 1) for i in range(12)]
@@ -264,6 +267,12 @@ class EventIndex(EventViewMixin, CartMixin, TemplateView):
self.request.event.has_subevents or self.request.event.presale_is_running
)
)
context['show_dates'] = (
self.request.event.has_subevents and (
'cart_namespace' not in self.kwargs
or not self.subevent
)
)
return context

View File

@@ -151,7 +151,7 @@ def add_events_for_days(request, organizer, before, after, ebd, timezones):
})
def add_subevents_for_days(qs, before, after, ebd, timezones, event=None):
def add_subevents_for_days(qs, before, after, ebd, timezones, event=None, cart_namespace=None):
qs = qs.filter(active=True).filter(
Q(Q(date_to__gte=before) & Q(date_from__lte=after)) |
Q(Q(date_from__lte=after) & Q(date_to__gte=before)) |
@@ -160,6 +160,10 @@ def add_subevents_for_days(qs, before, after, ebd, timezones, event=None):
'date_from'
)
for se in qs:
kwargs = {'subevent': se.pk}
if cart_namespace:
kwargs['cart_namespace'] = cart_namespace
settings = event.settings if event else se.event.settings
timezones.add(settings.timezones)
tz = pytz.timezone(settings.timezone)
@@ -175,9 +179,7 @@ def add_subevents_for_days(qs, before, after, ebd, timezones, event=None):
'timezone': settings.timezone,
'time': datetime_from.time().replace(tzinfo=None) if first and settings.show_times else None,
'event': se,
'url': eventreverse(se.event, 'presale:event.index', kwargs={
'subevent': se.pk
}),
'url': eventreverse(se.event, 'presale:event.index', kwargs=kwargs)
})
d += timedelta(days=1)
@@ -186,9 +188,7 @@ def add_subevents_for_days(qs, before, after, ebd, timezones, event=None):
'event': se,
'continued': False,
'time': datetime_from.time().replace(tzinfo=None) if se.event.settings.show_times else None,
'url': eventreverse(se.event, 'presale:event.index', kwargs={
'subevent': se.pk
}),
'url': eventreverse(se.event, 'presale:event.index', kwargs=kwargs),
'timezone': se.event.settings.timezone,
})