mirror of
https://github.com/pretix/pretix.git
synced 2025-12-14 13:32:28 +00:00
Compare commits
6 Commits
cart-use-b
...
widget-dat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e92fc739ca | ||
|
|
3cee60d71d | ||
|
|
3fbdf5a790 | ||
|
|
a37d1a5d59 | ||
|
|
2d9f782b36 | ||
|
|
a3ee8fd0f9 |
@@ -500,33 +500,37 @@ class EventIndex(EventViewMixin, EventListMixin, CartMixin, TemplateView):
|
|||||||
|
|
||||||
self.subevent = None
|
self.subevent = None
|
||||||
utm_params = {k: v for k, v in request.GET.items() if k.startswith("utm_")}
|
utm_params = {k: v for k, v in request.GET.items() if k.startswith("utm_")}
|
||||||
|
pass_through_url_params = utm_params | \
|
||||||
|
{k: v for k, v in request.GET.items() if k in ("locale", "consent")} | \
|
||||||
|
({"widget_data": request.GET.get('widget_data')} if len(self.request.GET.get('widget_data', '{}')) > 3 else {})
|
||||||
|
|
||||||
if request.GET.get('src', '') == 'widget' and 'take_cart_id' in request.GET:
|
if request.GET.get('src', '') == 'widget' and 'take_cart_id' in request.GET:
|
||||||
# User has clicked "Open in a new tab" link in widget
|
# User has clicked "Open in a new tab" link in widget
|
||||||
get_or_create_cart_id(request)
|
get_or_create_cart_id(request)
|
||||||
return redirect_to_url(eventreverse(request.event, 'presale:event.index', kwargs=kwargs) + '?' + urlencode(utm_params))
|
return redirect_to_url(eventreverse(request.event, 'presale:event.index', kwargs=kwargs) + '?' + urlencode(utm_params))
|
||||||
elif request.GET.get('iframe', '') == '1' and 'take_cart_id' in request.GET:
|
elif request.GET.get('iframe', '') == '1' and (
|
||||||
# Widget just opened, a cart already exists. Let's to a stupid redirect to check if cookies are disabled
|
'take_cart_id' in request.GET or len(self.request.GET.get('widget_data', '{}')) > 3 or 'consent' in request.GET
|
||||||
get_or_create_cart_id(request)
|
):
|
||||||
|
# Widget just opened, and a cart already exists or we have been passed widget_data.
|
||||||
|
# Let's do a stupid redirect to check if cookies are disabled.
|
||||||
return redirect_to_url(eventreverse(request.event, 'presale:event.index', kwargs=kwargs) + '?' + urlencode({
|
return redirect_to_url(eventreverse(request.event, 'presale:event.index', kwargs=kwargs) + '?' + urlencode({
|
||||||
'require_cookie': 'true',
|
'require_cookie': 'true',
|
||||||
'cart_id': request.GET.get('take_cart_id'),
|
'cart_id': get_or_create_cart_id(request),
|
||||||
**({"locale": request.GET.get('locale')} if request.GET.get('locale') else {}),
|
**pass_through_url_params,
|
||||||
**utm_params,
|
|
||||||
}))
|
}))
|
||||||
elif request.GET.get('iframe', '') == '1' and len(self.request.GET.get('widget_data', '{}')) > 3:
|
|
||||||
# We've been passed data from a widget, we need to create a cart session to store it.
|
|
||||||
get_or_create_cart_id(request)
|
|
||||||
elif 'require_cookie' in request.GET and settings.SESSION_COOKIE_NAME not in request.COOKIES and \
|
elif 'require_cookie' in request.GET and settings.SESSION_COOKIE_NAME not in request.COOKIES and \
|
||||||
'__Host-' + settings.SESSION_COOKIE_NAME not in self.request.COOKIES:
|
'__Host-' + settings.SESSION_COOKIE_NAME not in self.request.COOKIES:
|
||||||
# Cookies are in fact not supported
|
# Cookies are in fact not supported
|
||||||
r = render(request, 'pretixpresale/event/cookies.html', {
|
r = render(request, 'pretixpresale/event/cookies.html', {
|
||||||
'url': eventreverse(
|
'url': eventreverse(
|
||||||
request.event, "presale:event.index", kwargs={'cart_namespace': kwargs.get('cart_namespace') or ''}
|
request.event, "presale:event.index", kwargs={
|
||||||
|
'cart_namespace': kwargs.get('cart_namespace') or '',
|
||||||
|
**({"subevent": kwargs['subevent']} if kwargs.get('subevent') else {}),
|
||||||
|
}
|
||||||
) + "?" + urlencode({
|
) + "?" + urlencode({
|
||||||
"src": "widget",
|
"src": "widget",
|
||||||
**({"locale": request.GET.get('locale')} if request.GET.get('locale') else {}),
|
|
||||||
**({"take_cart_id": request.GET.get('cart_id')} if request.GET.get('cart_id') else {}),
|
**({"take_cart_id": request.GET.get('cart_id')} if request.GET.get('cart_id') else {}),
|
||||||
**utm_params,
|
**pass_through_url_params,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
r._csp_ignore = True
|
r._csp_ignore = True
|
||||||
|
|||||||
Reference in New Issue
Block a user