diff --git a/elections2021/migrations/0020_auto_20210517_0235.py b/elections2021/migrations/0020_auto_20210517_0235.py new file mode 100644 index 0000000000000000000000000000000000000000..d8704098c25adbce87fd86426ac50b06b0117cdc --- /dev/null +++ b/elections2021/migrations/0020_auto_20210517_0235.py @@ -0,0 +1,39 @@ +# Generated by Django 3.2.2 on 2021-05-17 00:35 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("wagtailcore", "0062_comment_models_and_pagesubscription"), + ("elections2021", "0019_elections2021homepage_gdpr_and_cookies_page"), + ] + + operations = [ + migrations.AddField( + model_name="elections2021homepage", + name="program_strategic_page", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailcore.page", + verbose_name="stránka program v kostce", + ), + ), + migrations.AlterField( + model_name="elections2021homepage", + name="gdpr_and_cookies_page", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailcore.page", + verbose_name="stránka GDPR a Cookies", + ), + ), + ] diff --git a/elections2021/models.py b/elections2021/models.py index 525b3aaa4bbeaba2c7563dd3d30b8fe6e47676bc..fd05eb1bfb05c25c3f0152390979b23fe32cbbcc 100644 --- a/elections2021/models.py +++ b/elections2021/models.py @@ -165,12 +165,35 @@ class Elections2021HomePage(Page, MetadataPageMixin): on_delete=models.SET_NULL, related_name="+", ) + program_strategic_page = models.ForeignKey( + "wagtailcore.Page", + verbose_name="stránka program v kostce", + null=True, + blank=True, + on_delete=models.SET_NULL, + related_name="+", + ) matomo_id = models.IntegerField( "Matomo ID pro sledování návštěvnosti", blank=True, null=True ) ### PANELS + header_panels = [ + StreamFieldPanel("header_links"), + PageChooserPanel( + "program_strategic_page", "elections2021.Elections2021StrategicPage" + ), + ] + + footer_panels = [ + StreamFieldPanel("footer_menu"), + StreamFieldPanel("footer_links"), + PageChooserPanel( + "gdpr_and_cookies_page", "elections2021.Elections2021TextPage" + ), + ] + promote_panels = [ MultiFieldPanel( [ @@ -184,16 +207,22 @@ class Elections2021HomePage(Page, MetadataPageMixin): ] settings_panels = [ - StreamFieldPanel("footer_menu"), - StreamFieldPanel("header_links"), - StreamFieldPanel("footer_links"), - PageChooserPanel( - "gdpr_and_cookies_page", "elections2021.Elections2021TextPage" - ), FieldPanel("matomo_id"), CommentPanel(), ] + edit_handler = TabbedInterface( + [ + ObjectList(Page.content_panels, heading=gettext_lazy("Content")), + ObjectList(promote_panels, heading=gettext_lazy("Promote")), + ObjectList(header_panels, heading="hlavička"), + ObjectList(footer_panels, heading="patička"), + ObjectList( + settings_panels, heading=gettext_lazy("Settings"), classname="settings" + ), + ] + ) + ### RELATIONS subpage_types = [ @@ -244,18 +273,32 @@ class Elections2021HomePage(Page, MetadataPageMixin): @cached_property def program_page_url(self): + # TODO launch + return "#" return get_subpage_url(self, Elections2021ProgramPage) @cached_property def program_app_page_url(self): + # TODO launch + return "#" return get_subpage_url(self, Elections2021ProgramAppPage) + @cached_property + def strategic_list_page_url(self): + return get_subpage_url(self, Elections2021StrategicListPage) + @cached_property def gdpr_and_cookies_url(self): if self.gdpr_and_cookies_page: return self.gdpr_and_cookies_page.url return "#" + @cached_property + def program_strategic_page_url(self): + if self.program_strategic_page: + return self.program_strategic_page.url + return "#" + class Elections2021ArticleTag(TaggedItemBase): content_object = ParentalKey( @@ -1823,10 +1866,9 @@ class Elections2021StrategicPage(SubpageMixin, MetadataPageMixin, Page): ], gettext_lazy("Common page configuration"), ), - CommentPanel(), ] - settings_panels = [] + settings_panels = [PublishingPanel(), CommentPanel()] ### RELATIONS diff --git a/elections2021/templates/elections2021/base.html b/elections2021/templates/elections2021/base.html index df0f265ae334c3e6b683795a08a08f8fd518554c..6af5836fd9e38c0f865761d0b47194ccd2d46cd1 100644 --- a/elections2021/templates/elections2021/base.html +++ b/elections2021/templates/elections2021/base.html @@ -57,25 +57,25 @@ <div v-if="show || isLgScreenSize" class="navbar__main navbar__section navbar__section--expandable container-padding--zero lg:container-padding--auto"> <ul class="navbar-menu text-white"> <li class="navbar-menu__item"> - <a href="{{ page.root_page.articles_page_url }}" data-href="{{ page.root_page.articles_page_url }}" class="navbar-menu__link">Aktuality</a> + <a href="{{ page.root_page.articles_page_url }}" class="navbar-menu__link">Aktuality</a> </li> <li class="navbar-menu__item"> - <a href="{{ page.root_page.candidates_list_page_url }}" data-href="{{ page.root_page.candidates_list_page_url }}" class="navbar-menu__link">Naši lidé</a></li> + <a href="{{ page.root_page.candidates_list_page_url }}" class="navbar-menu__link">Naši lidé</a></li> </li> <li class="navbar-menu__item"> - <a href="{{ page.root_page.questions_page_url }}" data-href="{{ page.root_page.questions_page_url }}" class="navbar-menu__link">Časté dotazy</a> + <a href="{{ page.root_page.questions_page_url }}" class="navbar-menu__link">Časté dotazy</a> </li> <li class="navbar-menu__item"> - <ui-navbar-subitem label="Volební program" href="#"> + <ui-navbar-subitem label="Volební program" href="{{ page.root_page.program_page_url }}"> <ul class="navbar-menu__submenu"> - <li><a href="#" data-href="#" class="navbar-menu__link">Úplný program</a></li> - <li><a href="#" data-href="#" class="navbar-menu__link">Program v kostce</a></li> + <li><a href="{{ page.root_page.program_page_url }}" class="navbar-menu__link">Úplný program</a></li> + <li><a href="{{ page.root_page.program_strategic_page_url }}" class="navbar-menu__link">Program v kostce</a></li> </ul> </ui-navbar-subtitem> </li> {% comment %} <li class="navbar-menu__item"> - <a href="#" data-href="#" class="navbar-menu__link">Strategické dokumenty</a> + <a href="{{ page.root_page.strategic_list_page_url }}" class="navbar-menu__link">Strategické dokumenty</a> </li> {% endcomment %} </ul> @@ -83,10 +83,8 @@ <div class="navbar__actions navbar__section lg:container-padding--auto self-start flex flex-col sm:flex-row lg:flex-col sm:space-x-4 space-y-2 sm:space-y-0 lg:space-y-2 xl:flex-row xl:space-x-2 xl:space-y-0 h-full justify-center"> <button class="btn btn--icon btn--hoveractive btn--autowidth lg:text-sm xl:text-base focus:outline-none"> <div class="btn__body-wrap"> - <div class="btn__body bg-acidgreen text-black hover:bg-darkacidgreen px-1 sm:px-4 py-2 sm:py-4">Program pro vás</div> - <div class="btn__icon bg-darkacidgreen text-black"> - <i class="ico--app"></i> - </div> + <a href="{{ page.root_page.program_app_page_url }}" class="btn__body bg-acidgreen text-black hover:bg-darkacidgreen px-1 sm:px-4 py-4">Program pro vás</a> + <a href="{{ page.root_page.program_app_page_url }}" class="btn__icon bg-darkacidgreen text-black"><i class="ico--app"></i></a> </div> </button> </div> @@ -196,10 +194,8 @@ <div class="flex flex-col md:flex-row lg:flex-col lg:items-end space-y-2 md:space-y-0 md:space-x-2 lg:space-x-0 lg:space-y-2"> <button class="btn btn--icon btn--hoveractive btn--autowidth lg:text-sm xl:text-base focus:outline-none"> <div class="btn__body-wrap"> - <div class="btn__body bg-acidgreen text-black hover:bg-darkacidgreen px-1 sm:px-4 py-4">Program pro vás</div> - <div class="btn__icon bg-darkacidgreen text-black"> - <i class="ico--app"></i> - </div> + <a href="{{ page.root_page.program_app_page_url }}" class="btn__body bg-acidgreen text-black hover:bg-darkacidgreen px-1 sm:px-4 py-4">Program pro vás</a> + <a href="{{ page.root_page.program_app_page_url }}" class="btn__icon bg-darkacidgreen text-black"><i class="ico--app"></i></a> </div> </button> </div>