Fix Go to shop button for non-live events with subdomain

This commit is contained in:
Raphael Michel
2017-06-02 17:58:44 +02:00
parent 574fb6804f
commit e89e3d2e1b
3 changed files with 23 additions and 13 deletions

View File

@@ -1,4 +1,5 @@
import sys
from importlib import import_module
from django.conf import settings
from django.core.urlresolvers import Resolver404, get_script_prefix, resolve
@@ -8,6 +9,8 @@ from pretix.base.settings import GlobalSettingsObject
from .signals import html_head, nav_event, nav_global, nav_topbar
from .utils.i18n import get_javascript_format, get_moment_locale
SessionStore = import_module(settings.SESSION_ENGINE).SessionStore
def contextprocessor(request):
"""
@@ -38,6 +41,22 @@ def contextprocessor(request):
_nav_event += response
if request.event.settings.get('payment_term_weekdays'):
_js_payment_weekdays_disabled = '[0,6]'
ctx['has_domain'] = request.event.organizer.domains.exists()
if not request.event.live and ctx['has_domain']:
child_sess = request.session.get('child_session_{}'.format(request.event.pk))
s = SessionStore()
if not child_sess or not s.exists(child_sess):
s['pretix_event_access_{}'.format(request.event.pk)] = request.session.session_key
s.create()
ctx['new_session'] = s.session_key
request.session['child_session_{}'.format(request.event.pk)] = s.session_key
request.session['event_access'] = True
else:
ctx['new_session'] = child_sess
request.session['event_access'] = True
ctx['nav_event'] = _nav_event
ctx['js_payment_weekdays_disabled'] = _js_payment_weekdays_disabled
@@ -45,6 +64,7 @@ def contextprocessor(request):
if not hasattr(request, 'event'):
for receiver, response in nav_global.send(request, request=request):
_nav_global += response
ctx['nav_global'] = sorted(_nav_global, key=lambda n: n['label'])
_nav_topbar = []

View File

@@ -1,7 +1,5 @@
from decimal import Decimal
from importlib import import_module
from django.conf import settings
from django.contrib.contenttypes.models import ContentType
from django.core.urlresolvers import reverse
from django.db.models import Sum
@@ -21,7 +19,6 @@ from pretix.control.signals import (
from ..logdisplay import OVERVIEW_BLACKLIST
SessionStore = import_module(settings.SESSION_ENGINE).SessionStore
NUM_WIDGET = '<div class="numwidget"><span class="num">{num}</span><span class="text">{text}</span></div>'
@@ -238,22 +235,12 @@ def event_index(request, organizer, event):
a_qs = request.event.requiredaction_set.filter(done=False)
has_domain = request.event.organizer.domains.exists()
ctx = {
'widgets': rearrange(widgets),
'logs': qs[:5],
'actions': a_qs[:5] if can_change_orders else [],
'has_domain': has_domain
}
if not request.event.live and has_domain:
s = SessionStore()
s['pretix_event_access_{}'.format(request.event.pk)] = request.session.session_key
s.create()
ctx['new_session'] = s.session_key
request.session['event_access'] = True
for a in ctx['actions']:
a.display = a.display(request)