From 9ec585085b64b1ea9ae9b253c73dca164c51faad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexa=20Valentov=C3=A1?= <git@imaniti.org> Date: Tue, 29 Oct 2024 13:23:50 +0100 Subject: [PATCH] custom logo for district pages --- ...tricthomepage_custom_logo_dark_and_more.py | 25 ++++++++++++++ ...tricthomepage_custom_logo_dark_and_more.py | 33 +++++++++++++++++++ district/models.py | 10 +++++- .../district/district_home_page.html | 1 - shared/models/main.py | 25 ++++++++++++++ .../organisms/layout/district/navbar.html | 32 ++++++++++-------- ...alter_uniwebhomepage_dark_logo_and_more.py | 25 ++++++++++++++ uniweb/models.py | 22 ++----------- 8 files changed, 137 insertions(+), 36 deletions(-) create mode 100644 district/migrations/0299_districthomepage_custom_logo_dark_and_more.py create mode 100644 district/migrations/0300_remove_districthomepage_custom_logo_dark_and_more.py create mode 100644 uniweb/migrations/0113_alter_uniwebhomepage_dark_logo_and_more.py diff --git a/district/migrations/0299_districthomepage_custom_logo_dark_and_more.py b/district/migrations/0299_districthomepage_custom_logo_dark_and_more.py new file mode 100644 index 00000000..3c7d280d --- /dev/null +++ b/district/migrations/0299_districthomepage_custom_logo_dark_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 5.1.2 on 2024-10-29 11:31 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('district', '0298_districtoctopuspersonpage_originating_role_and_more'), + ('wagtailimages', '0026_delete_uploadedimage'), + ] + + operations = [ + migrations.AddField( + model_name='districthomepage', + name='custom_logo_dark', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.image', verbose_name='obrázek'), + ), + migrations.AddField( + model_name='districthomepage', + name='custom_logo_light', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.image', verbose_name='obrázek'), + ), + ] diff --git a/district/migrations/0300_remove_districthomepage_custom_logo_dark_and_more.py b/district/migrations/0300_remove_districthomepage_custom_logo_dark_and_more.py new file mode 100644 index 00000000..f3feba55 --- /dev/null +++ b/district/migrations/0300_remove_districthomepage_custom_logo_dark_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 5.1.2 on 2024-10-29 12:14 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('district', '0299_districthomepage_custom_logo_dark_and_more'), + ('wagtailimages', '0026_delete_uploadedimage'), + ] + + operations = [ + migrations.RemoveField( + model_name='districthomepage', + name='custom_logo_dark', + ), + migrations.RemoveField( + model_name='districthomepage', + name='custom_logo_light', + ), + migrations.AddField( + model_name='districthomepage', + name='dark_logo', + field=models.ForeignKey(blank=True, help_text='Pokud žádné nezadáte, použije se default logo pirátů', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.image', verbose_name='Logo pro web (tmavá verze)'), + ), + migrations.AddField( + model_name='districthomepage', + name='light_logo', + field=models.ForeignKey(blank=True, help_text='Pokud žádné nezadáte, použije se default logo pirátů', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.image', verbose_name='Logo pro web (světlá verze)'), + ), + ] diff --git a/district/models.py b/district/models.py index 1b632c3d..45009d45 100644 --- a/district/models.py +++ b/district/models.py @@ -63,6 +63,7 @@ from shared.models import ( MainSearchPageMixin, MainSimplePageMixin, PageInMenuMixin, + CustomLogoMixin, PdfPageMixin, SharedTaggedDistrictArticle, SubpageMixin, @@ -88,7 +89,7 @@ CONTENT_BLOCKS = DEFAULT_CONTENT_BLOCKS + [ ] -class DistrictHomePage(CalendarMixin, MainHomePageMixin): +class DistrictHomePage(CustomLogoMixin, CalendarMixin, MainHomePageMixin): ### FIELDS # Main section @@ -180,6 +181,13 @@ class DistrictHomePage(CalendarMixin, MainHomePageMixin): menu_panels = [ FieldPanel("title_suffix"), FieldPanel("meta_title_suffix"), + MultiFieldPanel( + [ + FieldPanel("dark_logo"), + FieldPanel("light_logo") + ], + "Vlastní logo" + ), ] + MainHomePageMixin.menu_panels footer_panels = MainHomePageMixin.footer_panels + [ diff --git a/district/templates/district/district_home_page.html b/district/templates/district/district_home_page.html index 987c7908..f9ee3c9b 100644 --- a/district/templates/district/district_home_page.html +++ b/district/templates/district/district_home_page.html @@ -2,7 +2,6 @@ {% load wagtailcore_tags %} {% block content %} - {% include 'styleguide2/includes/organisms/layout/district/navbar.html' with is_transparent=True %} <main role="main"> diff --git a/shared/models/main.py b/shared/models/main.py index f4453e1e..d50abc7d 100644 --- a/shared/models/main.py +++ b/shared/models/main.py @@ -2164,6 +2164,31 @@ class PdfPageMixin(models.Model): return self.pdf_file.url +class CustomLogoMixin(models.Model): + dark_logo = models.ForeignKey( + "wagtailimages.Image", + on_delete=models.PROTECT, + blank=True, + null=True, + verbose_name="Logo pro web (tmavá verze)", + help_text="Pokud žádné nezadáte, použije se default logo pirátů", + related_name="+", + ) + + light_logo = models.ForeignKey( + "wagtailimages.Image", + on_delete=models.PROTECT, + blank=True, + null=True, + verbose_name="Logo pro web (světlá verze)", + help_text="Pokud žádné nezadáte, použije se default logo pirátů", + related_name="+", + ) + + class Meta: + abstract = True + + # --- END Whole page mixins --- diff --git a/shared/templates/styleguide2/includes/organisms/layout/district/navbar.html b/shared/templates/styleguide2/includes/organisms/layout/district/navbar.html index 4a377990..9ec34f34 100644 --- a/shared/templates/styleguide2/includes/organisms/layout/district/navbar.html +++ b/shared/templates/styleguide2/includes/organisms/layout/district/navbar.html @@ -25,13 +25,15 @@ alt="{% if light_logo %}{{ light_logo.alt }}{% else %}Pirátské logo{% endif %}" > - <div class="font-alt text-xl w-[100px]"> - {% if page.root_page.title_suffix %} - {{ page.root_page.title_suffix }} - {% else %} - {{ page.root_page.title }} - {% endif %} - </div> + {% if not light_logo %} + <div class="font-alt text-xl w-[100px]"> + {% if page.root_page.title_suffix %} + {{ page.root_page.title_suffix }} + {% else %} + {{ page.root_page.title }} + {% endif %} + </div> + {% endif %} </div> <div @@ -48,13 +50,15 @@ alt="{% if dark_logo %}{{ dark_logo.alt }}{% else %}Pirátské logo{% endif %}" > - <div class="font-alt text-xl w-[100px]"> - {% if page.root_page.title_suffix %} - {{ page.root_page.title_suffix }} - {% else %} - {{ page.root_page.title }} - {% endif %} - </div> + {% if not dark_logo %} + <div class="font-alt text-xl w-[100px]"> + {% if page.root_page.title_suffix %} + {{ page.root_page.title_suffix }} + {% else %} + {{ page.root_page.title }} + {% endif %} + </div> + {% endif %} </div> {% endblock %} diff --git a/uniweb/migrations/0113_alter_uniwebhomepage_dark_logo_and_more.py b/uniweb/migrations/0113_alter_uniwebhomepage_dark_logo_and_more.py new file mode 100644 index 00000000..91f87545 --- /dev/null +++ b/uniweb/migrations/0113_alter_uniwebhomepage_dark_logo_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 5.1.2 on 2024-10-29 12:14 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('uniweb', '0112_alter_uniwebarticlepage_content_and_more'), + ('wagtailimages', '0026_delete_uploadedimage'), + ] + + operations = [ + migrations.AlterField( + model_name='uniwebhomepage', + name='dark_logo', + field=models.ForeignKey(blank=True, help_text='Pokud žádné nezadáte, použije se default logo pirátů', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.image', verbose_name='Logo pro web (tmavá verze)'), + ), + migrations.AlterField( + model_name='uniwebhomepage', + name='light_logo', + field=models.ForeignKey(blank=True, help_text='Pokud žádné nezadáte, použije se default logo pirátů', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.image', verbose_name='Logo pro web (světlá verze)'), + ), + ] diff --git a/uniweb/models.py b/uniweb/models.py index bb243552..3a94942b 100644 --- a/uniweb/models.py +++ b/uniweb/models.py @@ -41,6 +41,7 @@ from shared.models import ( PdfPageMixin, ScrollProgressMixin, SharedTaggedUniwebArticle, + CustomLogoMixin, SocialMixin, SubpageMixin, ) @@ -68,6 +69,7 @@ class UniwebHomePage( LegacyFooterMixin, PageInMenuMixin, ScrollProgressMixin, + CustomLogoMixin, MainHomePageMixin, ): base_form_class = UniwebHomePageAdminForm @@ -99,26 +101,6 @@ class UniwebHomePage( use_json_field=True, ) - dark_logo = models.ForeignKey( - "wagtailimages.Image", - on_delete=models.PROTECT, - blank=True, - null=True, - verbose_name="Logo pro web (tmavá verze)", - help_text="Pokud žádné nezadáte, použije se default logo pirátů", - related_name="uniweb_dark_logo_image", - ) - - light_logo = models.ForeignKey( - "wagtailimages.Image", - on_delete=models.PROTECT, - blank=True, - null=True, - verbose_name="Logo pro web (světlá verze)", - help_text="Pokud žádné nezadáte, použije se default logo pirátů", - related_name="uniweb_light_logo_image", - ) - hide_footer = models.BooleanField( "skrýt patičku", default=False, help_text="Chcete skrýt patičku?" ) -- GitLab