diff options
| 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 |
| commit | a5b675c6be3960faf24b6313b3a945373e7c7480 (patch) | |
| tree | fe5c841dcee24b7df160a20286a2d73418f4e2fc /home | |
| parent | 08ced77fb1fcb29c41c1e7075f57453addd867db (diff) | |
| download | ishtar-pergamon-a5b675c6be3960faf24b6313b3a945373e7c7480.tar.bz2 ishtar-pergamon-a5b675c6be3960faf24b6313b3a945373e7c7480.zip | |
Fix logo and menu management for subpages
Diffstat (limited to 'home')
| -rw-r--r-- | home/models.py | 20 |
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 |
