From 871742a41667d98172a365e3e8d64a5d87043125 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Tue, 20 Sep 2022 08:02:54 +0200 Subject: [PATCH] misc: mark some cells as requiring a session (#69301) --- combo/apps/wcs/models.py | 1 + combo/data/models.py | 2 ++ combo/public/views.py | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/combo/apps/wcs/models.py b/combo/apps/wcs/models.py index fa41d27d..89831e8c 100644 --- a/combo/apps/wcs/models.py +++ b/combo/apps/wcs/models.py @@ -862,6 +862,7 @@ class WcsCardCell(CardMixin, CellBase): cached_json = JSONField(blank=True, default=dict) is_enabled = classmethod(is_wcs_enabled) + session_required = True manager_appearance_template = 'combo/wcs/manager/card-cell-form-appearance.html' diff --git a/combo/data/models.py b/combo/data/models.py index 7c2b1830..37a95e20 100644 --- a/combo/data/models.py +++ b/combo/data/models.py @@ -848,6 +848,7 @@ class CellBase(models.Model, metaclass=CellMeta): user_dependant = False default_template_name = None max_one_by_page = False + session_required = False # get_badge(self, context); set to None so cell types can be skipped easily get_badge = None @@ -2053,6 +2054,7 @@ class JsonCellBase(CellBase): make_global = False actions = {} additional_data = None + session_required = True # [ # {'key': ..., # 'url': ..., diff --git a/combo/public/views.py b/combo/public/views.py index 2e8d6a46..9fd6c9b3 100644 --- a/combo/public/views.py +++ b/combo/public/views.py @@ -570,6 +570,10 @@ def publish_page(request, page, status=200, template_name=None): for cell in cells: cell._assets = {a.key: a for a in assets if a.key in cell._asset_keys.keys()} + # create a session if required by a cell + if not request.session.session_key and any(cell.session_required for cell in cells): + request.session.cycle_key() + ctx.update( { 'page_cells': cells,