From aefaf2f6ed5733d2547adb3b6e127710977f4455 Mon Sep 17 00:00:00 2001 From: Nigel van Keulen Date: Tue, 4 Jun 2024 16:04:54 +0200 Subject: [PATCH] Track initial page across views by adding to adapter kwargs --- wagtail_fedit/templatetags/fedit.py | 2 ++ wagtail_fedit/views/adapters.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/wagtail_fedit/templatetags/fedit.py b/wagtail_fedit/templatetags/fedit.py index 00f0aeb..1f7f85e 100644 --- a/wagtail_fedit/templatetags/fedit.py +++ b/wagtail_fedit/templatetags/fedit.py @@ -136,6 +136,8 @@ def render(self, context): except AttributeError: raise TemplateSyntaxError(f"Object {model.__class__.__name__} does not have attribute {getter}") + if PAGE_TEMPLATE_VAR in context and isinstance(obj, Page): + kwargs["wagtail_template_page_instance"] = obj request = context.get("request") adapter = self.adapter( diff --git a/wagtail_fedit/views/adapters.py b/wagtail_fedit/views/adapters.py index 94025a8..96a576e 100644 --- a/wagtail_fedit/views/adapters.py +++ b/wagtail_fedit/views/adapters.py @@ -220,6 +220,9 @@ def get_context_data(self, **kwargs): # Wagtail uses this internally; for example in `{% wagtailpagecache %}` extra[PAGE_TEMPLATE_VAR] = self.instance + if "wagtail_template_page_instance" in self.adapter.kwargs: + extra[PAGE_TEMPLATE_VAR] = self.adapter.kwargs["wagtail_template_page_instance"] + # Form context; used for rendering the modal. if "form" in kwargs: extra.update({