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 | |
parent | 08ced77fb1fcb29c41c1e7075f57453addd867db (diff) | |
download | ishtar-pergamon-a5b675c6be3960faf24b6313b3a945373e7c7480.tar.bz2 ishtar-pergamon-a5b675c6be3960faf24b6313b3a945373e7c7480.zip |
Fix logo and menu management for subpages
-rw-r--r-- | home/models.py | 20 | ||||
-rw-r--r-- | ishtar_public/templates/base.html | 6 |
2 files changed, 21 insertions, 5 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 diff --git a/ishtar_public/templates/base.html b/ishtar_public/templates/base.html index 460a36c..95aee80 100644 --- a/ishtar_public/templates/base.html +++ b/ishtar_public/templates/base.html @@ -27,10 +27,10 @@ {% wagtailuserbar %} {% block header %} - <header><nav class="navbar navbar-expand-lg navbar-dark bg-primary{% if page.logo %} navlogo{% endif %}"> + <header><nav class="navbar navbar-expand-lg navbar-dark bg-primary{% if page.get_logo %} navlogo{% endif %}"> <a class="navbar-brand" href="#"> - {% if page.logo %} - {% image page.logo height-50 %} + {% if page.get_logo %} + {% image page.get_logo height-50 %} {% else %} {% trans "No organization name" as no_organization_msg %} {{ page.organization|default:no_organization_msg }} |