misc: mark some cells as requiring a session (#69301)

This commit is contained in:
Frédéric Péters 2022-09-20 08:02:54 +02:00
parent 5972b44739
commit 871742a416
3 changed files with 7 additions and 0 deletions

View File

@ -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'

View File

@ -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': ...,

View File

@ -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,