From 943b319557c1ebcd6af0c192b1a12260f8ca7e1a Mon Sep 17 00:00:00 2001 From: Lukas Bockstaller Date: Fri, 3 Jul 2026 13:56:47 +0200 Subject: [PATCH] use cookieretry only on presale event pages (Z#23236752) (#6297) * use cookieretry only on presale event pages * use csrfcookieretry only on event index page * include static tag * include csrfcookieretry in order.html as well * Update src/pretix/static/pretixpresale/js/csrfcookieretry.js Co-authored-by: Richard Schreiber --------- Co-authored-by: Richard Schreiber --- .../templates/pretixpresale/event/base.html | 2 +- .../templates/pretixpresale/event/index.html | 2 ++ .../templates/pretixpresale/event/order.html | 5 +++++ .../static/pretixpresale/js/csrfcookieretry.js | 15 +++++++++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/pretix/static/pretixpresale/js/csrfcookieretry.js diff --git a/src/pretix/presale/templates/pretixpresale/event/base.html b/src/pretix/presale/templates/pretixpresale/event/base.html index 984410d3b..2948ab649 100644 --- a/src/pretix/presale/templates/pretixpresale/event/base.html +++ b/src/pretix/presale/templates/pretixpresale/event/base.html @@ -9,7 +9,7 @@ {% load anonymize_email %} {% block thetitle %} {% if messages %} - {{ messages|join:" " }} :: + {{ messages|join:" " }} :: {% endif %} {% block title %}{% endblock %}{% if request.resolver_match.url_name != "event.index" %} :: {% endif %}{{ event.name }} {% endblock %} diff --git a/src/pretix/presale/templates/pretixpresale/event/index.html b/src/pretix/presale/templates/pretixpresale/event/index.html index d3e3a90df..81c394a85 100644 --- a/src/pretix/presale/templates/pretixpresale/event/index.html +++ b/src/pretix/presale/templates/pretixpresale/event/index.html @@ -1,6 +1,7 @@ {% extends "pretixpresale/event/base.html" %} {% load i18n %} {% load l10n %} +{% load static %} {% load eventurl %} {% load cache_large %} {% load money %} @@ -39,6 +40,7 @@ {% else %} {% endif %} + {% endblock %} {% block content %} diff --git a/src/pretix/presale/templates/pretixpresale/event/order.html b/src/pretix/presale/templates/pretixpresale/event/order.html index 9ff6f8069..8c68e4ece 100644 --- a/src/pretix/presale/templates/pretixpresale/event/order.html +++ b/src/pretix/presale/templates/pretixpresale/event/order.html @@ -6,6 +6,7 @@ {% load money %} {% load expiresformat %} {% load eventurl %} +{% load static %} {% load phone_format %} {% load rich_text %} {% load getitem %} @@ -22,6 +23,10 @@ {% endif %} {% trans "Order details" %} {% endblock %} +{% block custom_header %} + {{ block.super }} + +{% endblock %} {% block content %} {% if "thanks" in request.GET or "paid" in request.GET %}
diff --git a/src/pretix/static/pretixpresale/js/csrfcookieretry.js b/src/pretix/static/pretixpresale/js/csrfcookieretry.js new file mode 100644 index 000000000..f1447cd92 --- /dev/null +++ b/src/pretix/static/pretixpresale/js/csrfcookieretry.js @@ -0,0 +1,15 @@ +document.addEventListener("DOMContentLoaded", () => { + const COOKIE_NAME = "__Host-pretix_csrftoken"; + const RELOAD_FLAG = "csrfReloadPerformed"; + + const hasCookie = document.cookie + .split("; ") + .some((c) => c.startsWith(COOKIE_NAME + "=")); + + if (!hasCookie && !sessionStorage.getItem(RELOAD_FLAG)) { + sessionStorage.setItem(RELOAD_FLAG, "1"); + location.reload(); + } else if (hasCookie && sessionStorage.getItem(RELOAD_FLAG)) { + sessionStorage.removeItem(RELOAD_FLAG); + } +});