summaryrefslogtreecommitdiff
path: root/home
diff options
context:
space:
mode:
authorÉtienne Loks <etienne@peacefrogs.net>2019-08-22 07:46:56 +0200
committerÉtienne Loks <etienne@peacefrogs.net>2019-08-22 07:46:56 +0200
commita5b675c6be3960faf24b6313b3a945373e7c7480 (patch)
treefe5c841dcee24b7df160a20286a2d73418f4e2fc /home
parent08ced77fb1fcb29c41c1e7075f57453addd867db (diff)
downloadishtar-pergamon-a5b675c6be3960faf24b6313b3a945373e7c7480.tar.bz2
ishtar-pergamon-a5b675c6be3960faf24b6313b3a945373e7c7480.zip
Fix logo and menu management for subpages
Diffstat (limited to 'home')
-rw-r--r--home/models.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/home/models.py b/home/models.py
index 7eabfba..89a7a60 100644
--- a/home/models.py
+++ b/home/models.py
@@ -24,10 +24,26 @@ class BasePage(Page):
class Meta:
abstract = True
+ def get_homepage(self):
+ page = self
+ while page:
+ if hasattr(page, "homepage"):
+ return page.homepage
+ page = self.get_parent()
+
+ def get_logo(self):
+ if hasattr(self, 'logo'):
+ return self.logo
+ homepage = self.get_homepage()
+ if homepage:
+ return homepage.homepage.get_logo()
+
def get_context(self, request):
context = super().get_context(request)
- context['menu_items'] = self.get_children().filter(
- show_in_menus=True).live().order_by('pk')
+ homepage = self.get_homepage()
+ if homepage:
+ context['menu_items'] = homepage.get_children().filter(
+ show_in_menus=True).live().order_by('pk')
return context