diff --git a/majak/settings/base.py b/majak/settings/base.py index 3dbbce6a0894e9723cf1e3fe2c443cdecc73acbd..fe2ff730d244bfc923dffd38458103374ad755ce 100644 --- a/majak/settings/base.py +++ b/majak/settings/base.py @@ -33,6 +33,7 @@ INSTALLED_APPS = [ "wagtail.contrib.forms", "wagtail.contrib.redirects", "wagtail.contrib.modeladmin", + "wagtail.contrib.settings", "wagtail.embeds", "wagtail.sites", "wagtail.users", @@ -78,6 +79,7 @@ TEMPLATES = [ "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", + "wagtail.contrib.settings.context_processors.settings", "wagtailmenus.context_processors.wagtailmenus", ], }, diff --git a/senator/migrations/0009_senatorwebsettings.py b/senator/migrations/0009_senatorwebsettings.py new file mode 100644 index 0000000000000000000000000000000000000000..39933b1012f246b5d4e7fd261558da3b97573494 --- /dev/null +++ b/senator/migrations/0009_senatorwebsettings.py @@ -0,0 +1,87 @@ +# Generated by Django 3.0.5 on 2020-04-17 16:05 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("wagtailcore", "0045_assign_unlock_grouppagepermission"), + ("senator", "0008_senatorhomepage_image"), + ] + + operations = [ + migrations.CreateModel( + name="SenatorWebSettings", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "title_first_name", + models.CharField(max_length=250, verbose_name="jméno do titulku"), + ), + ( + "title_last_name", + models.CharField( + max_length=250, verbose_name="příjmení do titulku" + ), + ), + ( + "email", + models.EmailField( + blank=True, + help_text="kontaktní email", + max_length=254, + null=True, + ), + ), + ( + "facebook", + models.URLField(blank=True, help_text="Facebook URL", null=True), + ), + ( + "instagram", + models.URLField(blank=True, help_text="Instagram URL", null=True), + ), + ( + "twitter", + models.URLField(blank=True, help_text="Twitter URL", null=True), + ), + ( + "linkedin", + models.URLField(blank=True, help_text="LinkedIn URL", null=True), + ), + ("client", models.CharField(max_length=250, verbose_name="zadavatel")), + ( + "created_by", + models.CharField(max_length=250, verbose_name="zhotovitel"), + ), + ( + "cookies_page", + models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailcore.Page", + ), + ), + ( + "site", + models.OneToOneField( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to="wagtailcore.Site", + ), + ), + ], + options={"verbose_name": "[senátor] Nastavení webu",}, + ), + ] diff --git a/senator/models.py b/senator/models.py index 9f4ad40cbbc7b961611c72faf79d9c49c94498c0..e6153f1ae659cd63429ef291e83294948b145f15 100644 --- a/senator/models.py +++ b/senator/models.py @@ -1,5 +1,12 @@ from django.db import models -from wagtail.admin.edit_handlers import FieldPanel, StreamFieldPanel +from wagtail.admin.edit_handlers import ( + FieldPanel, + ObjectList, + PageChooserPanel, + StreamFieldPanel, + TabbedInterface, +) +from wagtail.contrib.settings.models import BaseSetting, register_setting from wagtail.core import blocks from wagtail.core.fields import RichTextField, StreamField from wagtail.core.models import Page @@ -128,3 +135,47 @@ class SenatorAboutPage(Page): class Meta: verbose_name = "[senátor] O mně" + + +@register_setting +class SenatorWebSettings(BaseSetting): + title_first_name = models.CharField("jméno do titulku", max_length=250) + title_last_name = models.CharField("příjmení do titulku", max_length=250) + + email = models.EmailField("kontaktní email", blank=True, null=True) + facebook = models.URLField("Facebook URL", blank=True, null=True) + instagram = models.URLField("Instagram URL", blank=True, null=True) + twitter = models.URLField("Twitter URL", blank=True, null=True) + linkedin = models.URLField("LinkedIn URL", blank=True, null=True) + + client = models.CharField("zadavatel", max_length=250) + created_by = models.CharField("zhotovitel", max_length=250) + cookies_page = models.ForeignKey( + "wagtailcore.Page", null=True, on_delete=models.SET_NULL, related_name="+" + ) + + first_tab_panels = [ + FieldPanel("title_first_name"), + FieldPanel("title_last_name"), + FieldPanel("client"), + FieldPanel("created_by"), + PageChooserPanel("cookies_page"), + ] + + second_tab_panels = [ + FieldPanel("email"), + FieldPanel("facebook"), + FieldPanel("instagram"), + FieldPanel("twitter"), + FieldPanel("linkedin"), + ] + + edit_handler = TabbedInterface( + [ + ObjectList(first_tab_panels, heading="Nastavení"), + ObjectList(second_tab_panels, heading="Sociální sítě"), + ] + ) + + class Meta: + verbose_name = "[senátor] Nastavení webu" diff --git a/senator/templates/senator/base.html b/senator/templates/senator/base.html index 98f9a92545bc6e5413fc81287cb3a8ebd0240207..4e815cc6efc375c5a0324aaefef9dc8b902378c9 100644 --- a/senator/templates/senator/base.html +++ b/senator/templates/senator/base.html @@ -1,5 +1,4 @@ -{% load static wagtailuserbar %} -{% load menu_tags %} +{% load static wagtailcore_tags wagtailuserbar menu_tags wagtailsettings_tags %} <!DOCTYPE HTML> <html class="" lang="cs-CZ"> @@ -761,38 +760,48 @@ <div class="l-subheader-cell at_right"> <div class="w-socials color_text hover_default ush_socials_1"> <div class="w-socials-list"> + + {% if settings.senator.SenatorWebSettings.facebook %} <div class="w-socials-item facebook"> - <a class="w-socials-item-link" target="_blank" href="https://www.facebook.com/WagenknechtLuk/" aria-label="Facebook"> + <a class="w-socials-item-link" target="_blank" href="{{ settings.senator.SenatorWebSettings.facebook }}" aria-label="Facebook"> <span class="w-socials-item-link-hover"></span> </a> <div class="w-socials-item-popup"> <span>Facebook</span> </div> </div> + {% endif %} + {% if settings.senator.SenatorWebSettings.twitter %} <div class="w-socials-item twitter"> - <a class="w-socials-item-link" target="_blank" href="https://twitter.com/wagenknechtluk" aria-label="Twitter"> + <a class="w-socials-item-link" target="_blank" href="{{ settings.senator.SenatorWebSettings.twitter }}" aria-label="Twitter"> <span class="w-socials-item-link-hover"></span> </a> <div class="w-socials-item-popup"> <span>Twitter</span> </div> </div> + {% endif %} + {% if settings.senator.SenatorWebSettings.linkedin %} <div class="w-socials-item linkedin"> - <a class="w-socials-item-link" target="_blank" href="https://www.linkedin.com/in/lukas-wagenknecht-b4229813/" aria-label="LinkedIn"> + <a class="w-socials-item-link" target="_blank" href="{{ settings.senator.SenatorWebSettings.linkedin }}" aria-label="LinkedIn"> <span class="w-socials-item-link-hover"></span> </a> <div class="w-socials-item-popup"> <span>LinkedIn</span> </div> </div> + {% endif %} + {% if settings.senator.SenatorWebSettings.instagram %} <div class="w-socials-item instagram"> - <a class="w-socials-item-link" target="_blank" href="https://www.instagram.com/wagenknecht_luk/" aria-label="Instagram"> + <a class="w-socials-item-link" target="_blank" href="{{ settings.senator.SenatorWebSettings.instagram }}" aria-label="Instagram"> <span class="w-socials-item-link-hover"></span> </a> <div class="w-socials-item-popup"> <span>Instagram</span> </div> </div> + {% endif %} + </div> </div> </div> @@ -802,7 +811,7 @@ <div class="l-subheader-h"> <div class="l-subheader-cell at_left"> <div class="w-text ush_text_1 font_regular"> - <div class="w-text-h"><a class="w-text-value" href="https://lukaswagenknecht.cz/">LUKÁŠ <strong>WAGENKNECHT</strong></a></div> + <div class="w-text-h" style="text-transform: uppercase;"><a class="w-text-value" href="/">{{ settings.senator.SenatorWebSettings.title_first_name }} <strong>{{ settings.senator.SenatorWebSettings.title_last_name }}</strong></a></div> </div> </div> <div class="l-subheader-cell at_center"></div> @@ -845,21 +854,33 @@ </div> <div class="w-socials align_center style_default color_desaturated_inv" style="font-size:24px;"> <div class="w-socials-list"> - <div class="w-socials-item email"><a class="w-socials-item-link" href="mailto:wagenknechtl@senat.cz" aria-label="Email" rel="nofollow"><span class="w-socials-item-link-hover"></span></a> + + {% if settings.senator.SenatorWebSettings.email %} + <div class="w-socials-item email"><a class="w-socials-item-link" href="mailto:{{ settings.senator.SenatorWebSettings.email }}" aria-label="Email" rel="nofollow"><span class="w-socials-item-link-hover"></span></a> <div class="w-socials-item-popup"><span>Email</span></div> </div> - <div class="w-socials-item facebook"><a class="w-socials-item-link" target="_blank" href="https://www.facebook.com/WagenknechtLuk/" aria-label="Facebook" rel="nofollow"><span class="w-socials-item-link-hover"></span></a> + {% endif %} + {% if settings.senator.SenatorWebSettings.facebook %} + <div class="w-socials-item facebook"><a class="w-socials-item-link" target="_blank" href="{{ settings.senator.SenatorWebSettings.facebook }}" aria-label="Facebook" rel="nofollow"><span class="w-socials-item-link-hover"></span></a> <div class="w-socials-item-popup"><span>Facebook</span></div> </div> - <div class="w-socials-item twitter"><a class="w-socials-item-link" target="_blank" href="https://twitter.com/wagenknechtluk" aria-label="Twitter" rel="nofollow"><span class="w-socials-item-link-hover"></span></a> + {% endif %} + {% if settings.senator.SenatorWebSettings.twitter %} + <div class="w-socials-item twitter"><a class="w-socials-item-link" target="_blank" href="{{ settings.senator.SenatorWebSettings.twitter }}" aria-label="Twitter" rel="nofollow"><span class="w-socials-item-link-hover"></span></a> <div class="w-socials-item-popup"><span>Twitter</span></div> </div> - <div class="w-socials-item instagram"><a class="w-socials-item-link" target="_blank" href="https://www.instagram.com/wagenknecht_luk/" aria-label="Instagram" rel="nofollow"><span class="w-socials-item-link-hover"></span></a> + {% endif %} + {% if settings.senator.SenatorWebSettings.instagram %} + <div class="w-socials-item instagram"><a class="w-socials-item-link" target="_blank" href="{{ settings.senator.SenatorWebSettings.instagram }}" aria-label="Instagram" rel="nofollow"><span class="w-socials-item-link-hover"></span></a> <div class="w-socials-item-popup"><span>Instagram</span></div> </div> - <div class="w-socials-item linkedin"><a class="w-socials-item-link" target="_blank" href="https://www.linkedin.com/in/lukas-wagenknecht-b4229813/" aria-label="LinkedIn" rel="nofollow"><span class="w-socials-item-link-hover"></span></a> + {% endif %} + {% if settings.senator.SenatorWebSettings.linkedin %} + <div class="w-socials-item linkedin"><a class="w-socials-item-link" target="_blank" href="{{ settings.senator.SenatorWebSettings.linkedin }}" aria-label="LinkedIn" rel="nofollow"><span class="w-socials-item-link-hover"></span></a> <div class="w-socials-item-popup"><span>LinkedIn</span></div> </div> + {% endif %} + </div> </div> </div> @@ -880,7 +901,7 @@ <div class="wpb_wrapper"> <div class="wpb_text_column "> <div class="wpb_wrapper"> - <p>2018 | <strong>Zadavatel: </strong>Lukáš Wagenknecht | <strong>Zpracovatel: </strong><a href="https://danielhlavacek.cz" target="_blank" rel="noopener">Daniel Hlaváček</a></p> + <p>2020 | <strong>Zadavatel: </strong>{{ settings.senator.SenatorWebSettings.client }} | <strong>Zpracovatel: </strong>{{ settings.senator.SenatorWebSettings.created_by }}</p> </div> </div> </div> @@ -903,7 +924,9 @@ <div class="wpb_wrapper"> <div class="wpb_text_column "> <div class="wpb_wrapper"> - <p style="text-align: center;">Tento web využívá soubory cookies. <a href="/soubory-cookies">Více informací.</a></p> + <p style="text-align: center;"> + Tento web využívá soubory cookies. <a href="{% pageurl settings.senator.SenatorWebSettings.cookies_page %}">Více informací.</a> + </p> </div> </div> </div> diff --git a/senator/templates/senator/main_menu.html b/senator/templates/senator/main_menu.html index 3148e973832f7ff30b79d7bc55e087cfdc808162..3730ce8f80b9992f0a1dfae8138c4e75c675d616 100644 --- a/senator/templates/senator/main_menu.html +++ b/senator/templates/senator/main_menu.html @@ -1,6 +1,6 @@ {% load menu_tags %} -<nav class="w-nav type_desktop dropdown_height m_align_left m_layout_dropdown ush_menu_1" itemscope itemtype="https://schema.org/SiteNavigationElement"> +<nav class="w-nav type_desktop dropdown_height m_align_left m_layout_dropdown ush_menu_1" style="text-transform: uppercase;" itemscope itemtype="https://schema.org/SiteNavigationElement"> <a class="w-nav-control" href="javascript:void(0);" aria-label="Menu"> <div class="w-nav-icon"><i></i></div><span>Menu</span> </a>