-
Notifications
You must be signed in to change notification settings - Fork 51
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
This reverts commit 3ddbd09.
- Loading branch information
1 parent
3ddbd09
commit daba8fa
Showing
14 changed files
with
86 additions
and
752 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
src/pretix/control/templates/pretixcontrol/event/component_link.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,120 +1,98 @@ | ||
import logging | ||
from urllib.parse import urljoin | ||
from importlib import import_module | ||
|
||
from django.conf import settings | ||
from django.db.models import Q | ||
from django.http import HttpRequest | ||
from django.urls import Resolver404, get_script_prefix, resolve | ||
from django_scopes import scope | ||
from django.urls import Resolver404, get_script_prefix, resolve, reverse | ||
from django.utils.translation import gettext_lazy as _ | ||
|
||
from pretix.base.models.auth import StaffSession | ||
from pretix.base.settings import GlobalSettingsObject | ||
from pretix.eventyay_common.navigation import ( | ||
get_event_navigation, get_global_navigation, | ||
) | ||
from pretix.control.navigation import merge_in | ||
from pretix.control.signals import nav_global | ||
|
||
from ..helpers.plugin_enable import is_video_enabled | ||
from ..multidomain.urlreverse import get_event_domain | ||
from .views.event import EventCreatedFor | ||
SessionStore = import_module(settings.SESSION_ENGINE).SessionStore | ||
|
||
logger = logging.getLogger(__name__) | ||
|
||
|
||
def contextprocessor(request: HttpRequest): | ||
if not hasattr(request, "_eventyay_common_default_context"): | ||
def contextprocessor(request): | ||
""" | ||
Adds data to all template contexts | ||
""" | ||
if not hasattr(request, '_eventyay_common_default_context'): | ||
request._eventyay_common_default_context = _default_context(request) | ||
return request._eventyay_common_default_context | ||
|
||
|
||
def _default_context(request: HttpRequest): | ||
def _default_context(request): | ||
try: | ||
url = resolve(request.path_info) | ||
except Resolver404: | ||
return {} | ||
|
||
if not request.path.startswith(f"{get_script_prefix()}common"): | ||
if not request.path.startswith(get_script_prefix() + 'common'): | ||
return {} | ||
ctx = { | ||
"url_name": url.url_name, | ||
"settings": settings, | ||
"django_settings": settings, | ||
"DEBUG": settings.DEBUG, | ||
"talk_hostname": settings.TALK_HOSTNAME, | ||
'url_name': url.url_name, | ||
'settings': settings, | ||
'django_settings': settings, | ||
'DEBUG': settings.DEBUG, | ||
} | ||
if getattr(request, 'event', None) and hasattr(request, 'organizer') and request.user.is_authenticated: | ||
ctx['nav_items'] = get_global_navigation(request) | ||
|
||
elif request.user.is_authenticated: | ||
ctx['nav_items'] = get_global_navigation(request) | ||
|
||
gs = GlobalSettingsObject() | ||
ctx["global_settings"] = gs.settings | ||
ctx['global_settings'] = gs.settings | ||
|
||
if request.user.is_authenticated: | ||
ctx["nav_items"] = get_global_navigation(request) | ||
|
||
ctx["staff_session"] = request.user.has_active_staff_session( | ||
request.session.session_key | ||
) | ||
ctx["staff_need_to_explain"] = ( | ||
StaffSession.objects.filter( | ||
user=request.user, date_end__isnull=False | ||
).filter(Q(comment__isnull=True) | Q(comment="")) | ||
if request.user.is_staff and settings.PRETIX_ADMIN_AUDIT_COMMENTS | ||
else StaffSession.objects.none() | ||
ctx['staff_session'] = request.user.has_active_staff_session(request.session.session_key) | ||
ctx['staff_need_to_explain'] = ( | ||
StaffSession.objects.filter(user=request.user, date_end__isnull=False).filter( | ||
Q(comment__isnull=True) | Q(comment="") | ||
) | ||
if request.user.is_staff and settings.PRETIX_ADMIN_AUDIT_COMMENTS else StaffSession.objects.none() | ||
) | ||
|
||
if event := getattr(request, "event", None): | ||
ctx["talk_edit_url"] = urljoin( | ||
settings.TALK_HOSTNAME, f"/orga/event/{request.event.slug}" | ||
) | ||
ctx["is_video_enabled"] = is_video_enabled(event) | ||
ctx["is_talk_event_created"] = False | ||
if ( | ||
request.event.settings.create_for == EventCreatedFor.BOTH.value | ||
or request.event.settings.talk_schedule_public is not None | ||
): | ||
ctx["is_talk_event_created"] = True | ||
|
||
if organizer := getattr(request, "organizer", None): | ||
ctx["nav_items"] = get_event_navigation(request) | ||
ctx["has_domain"] = ( | ||
get_event_domain(request.event, fallback=True) is not None | ||
) | ||
if not request.event.testmode: | ||
with scope(organizer=organizer): | ||
complain_testmode_orders = request.event.cache.get( | ||
"complain_testmode_orders" | ||
) | ||
if complain_testmode_orders is None: | ||
complain_testmode_orders = request.event.orders.filter( | ||
testmode=True | ||
).exists() | ||
request.event.cache.set( | ||
"complain_testmode_orders", complain_testmode_orders, 30 | ||
) | ||
ctx["complain_testmode_orders"] = ( | ||
complain_testmode_orders | ||
and request.user.has_event_permission( | ||
organizer, request.event, "can_view_orders", request=request | ||
) | ||
) | ||
else: | ||
ctx["complain_testmode_orders"] = False | ||
|
||
if not request.event.live and ctx["has_domain"]: | ||
child_sess_key = f"child_session_{request.event.pk}" | ||
child_sess = request.session.get(child_sess_key) | ||
|
||
if not child_sess: | ||
request.session[child_sess_key] = request.session.session_key | ||
else: | ||
ctx["new_session"] = child_sess | ||
request.session["event_access"] = True | ||
if request.GET.get("subevent", ""): | ||
subevent_id = request.GET.get("subevent", "").strip() | ||
try: | ||
pk = int(subevent_id) | ||
# Do not use .get() for lazy evaluation | ||
ctx["selected_subevents"] = request.event.subevents.filter( | ||
pk=pk | ||
) | ||
except ValueError as e: | ||
logger.error("Error parsing subevent ID: %s", e) | ||
ctx['talk_hostname'] = settings.TALK_HOSTNAME | ||
|
||
return ctx | ||
|
||
|
||
def get_global_navigation(request): | ||
url = request.resolver_match | ||
if not url: | ||
return [] | ||
nav = [ | ||
{ | ||
'label': _('Dashboard'), | ||
'url': reverse('eventyay_common:dashboard'), | ||
'active': (url.url_name == 'dashboard'), | ||
'icon': 'dashboard', | ||
}, | ||
{ | ||
'label': _('My Events'), | ||
'url': reverse('eventyay_common:events'), | ||
'active': 'events' in url.url_name, | ||
'icon': 'calendar', | ||
}, | ||
{ | ||
'label': _('Organizers'), | ||
'url': reverse('eventyay_common:organizers'), | ||
'active': 'organizers' in url.url_name, | ||
'icon': 'group', | ||
}, | ||
{ | ||
'label': _('Account'), | ||
'url': reverse('eventyay_common:account'), | ||
'active': 'account' in url.url_name, | ||
'icon': 'user', | ||
} | ||
|
||
] | ||
|
||
merge_in(nav, sorted( | ||
sum((list(a[1]) for a in nav_global.send(request, request=request)), []), | ||
key=lambda r: (1 if r.get('parent') else 0, r['label']) | ||
)) | ||
return nav |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.