Add option to limit events to specific sales channels (#1867)

This commit is contained in:
Martin Gross
2020-12-03 17:10:54 +01:00
committed by GitHub
parent 55d8639ecc
commit b3e95f54dd
17 changed files with 185 additions and 23 deletions

View File

@@ -2,6 +2,7 @@ from django.template.response import TemplateResponse
from django.urls import resolve
from django_scopes import scope
from pretix.base.channels import WebshopSalesChannel
from pretix.presale.signals import process_response
from .utils import _detect_event
@@ -20,6 +21,11 @@ class EventMiddleware:
def __call__(self, request):
url = resolve(request.path_info)
request._namespace = url.namespace
if not hasattr(request, 'sales_channel'):
# The environ lookup is only relevant during unit testing
request.sales_channel = request.environ.get('PRETIX_SALES_CHANNEL', WebshopSalesChannel())
if url.namespace != 'presale':
return self.get_response(request)