From 264ca23ad11bb7a5a7f219207606635d57d73591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org> Date: Sun, 20 Aug 2023 20:41:58 +0200 Subject: [PATCH] add videos, mobile menu, finish article images, add social media links, UI improvements --- .../0024_homepersonpage_name_titles.py | 19 + .../0025_homearticlepage_image_and_more.py | 33 ++ home/migrations/0026_socialmediasettings.py | 55 +++ ...7_remove_homedocumentpage_tags_and_more.py | 20 + ...omearticlepage_tags_delete_tag_and_more.py | 57 +++ home/migrations/0029_homearticlepage_tags.py | 25 ++ .../0030_homevideospage_homevideopage.py | 116 ++++++ .../0031_alter_homevideopage_options.py | 16 + .../0032_alter_homevideopage_content.py | 20 + home/models.py | 171 +++++++- ...bas-neue-v10-latin_latin-ext-regular.woff2 | Bin .../{ => home}/fonts/bebas-neue/style.css | 0 .../home}/fonts/pirati-ui/pirati-ui.eot | Bin 23160 -> 28772 bytes .../home}/fonts/pirati-ui/pirati-ui.svg | 8 + .../home}/fonts/pirati-ui/pirati-ui.ttf | Bin 22988 -> 28600 bytes .../home}/fonts/pirati-ui/pirati-ui.woff | Bin 23064 -> 28676 bytes home/static/home/fonts/pirati-ui/style.css | 374 ++++++++++++++++++ ...ource-serif-4-v7-latin_latin-ext-700.woff2 | Bin ...serif-4-v7-latin_latin-ext-700italic.woff2 | Bin ...ce-serif-4-v7-latin_latin-ext-italic.woff2 | Bin ...e-serif-4-v7-latin_latin-ext-regular.woff2 | Bin .../{ => home}/fonts/source-serif/style.css | 0 home/static/home/images/cc-by-sa.png | Bin 0 -> 17594 bytes .../static/home}/images/logo.png | Bin .../static/home}/images/logo_big.png | Bin .../home/blocks/person_page_block.html | 4 +- home/templates/home/home_article_page.html | 13 +- home/templates/home/home_articles_page.html | 59 ++- home/templates/home/home_document_page.html | 37 +- home/templates/home/home_page.html | 52 ++- home/templates/home/home_people_page.html | 4 +- home/templates/home/home_person_page.html | 4 +- home/templates/home/home_video_page.html | 50 +++ home/templates/home/home_videos_page.html | 42 ++ institut/settings/base.py | 2 + institut/static/fonts/pirati-ui/style.css | 129 ------ institut/templates/404.html | 19 +- institut/templates/500.html | 24 +- institut/templates/base.html | 126 ++++-- requirements/base.txt | 2 + 40 files changed, 1234 insertions(+), 247 deletions(-) create mode 100644 home/migrations/0024_homepersonpage_name_titles.py create mode 100644 home/migrations/0025_homearticlepage_image_and_more.py create mode 100644 home/migrations/0026_socialmediasettings.py create mode 100644 home/migrations/0027_remove_homedocumentpage_tags_and_more.py create mode 100644 home/migrations/0028_articletag_remove_homearticlepage_tags_delete_tag_and_more.py create mode 100644 home/migrations/0029_homearticlepage_tags.py create mode 100644 home/migrations/0030_homevideospage_homevideopage.py create mode 100644 home/migrations/0031_alter_homevideopage_options.py create mode 100644 home/migrations/0032_alter_homevideopage_content.py rename home/static/{ => home}/fonts/bebas-neue/bebas-neue-v10-latin_latin-ext-regular.woff2 (100%) rename home/static/{ => home}/fonts/bebas-neue/style.css (100%) rename {institut/static => home/static/home}/fonts/pirati-ui/pirati-ui.eot (76%) rename {institut/static => home/static/home}/fonts/pirati-ui/pirati-ui.svg (74%) rename {institut/static => home/static/home}/fonts/pirati-ui/pirati-ui.ttf (76%) rename {institut/static => home/static/home}/fonts/pirati-ui/pirati-ui.woff (76%) create mode 100644 home/static/home/fonts/pirati-ui/style.css rename home/static/{ => home}/fonts/source-serif/source-serif-4-v7-latin_latin-ext-700.woff2 (100%) rename home/static/{ => home}/fonts/source-serif/source-serif-4-v7-latin_latin-ext-700italic.woff2 (100%) rename home/static/{ => home}/fonts/source-serif/source-serif-4-v7-latin_latin-ext-italic.woff2 (100%) rename home/static/{ => home}/fonts/source-serif/source-serif-4-v7-latin_latin-ext-regular.woff2 (100%) rename home/static/{ => home}/fonts/source-serif/style.css (100%) create mode 100644 home/static/home/images/cc-by-sa.png rename {institut/static => home/static/home}/images/logo.png (100%) rename {institut/static => home/static/home}/images/logo_big.png (100%) create mode 100644 home/templates/home/home_video_page.html create mode 100644 home/templates/home/home_videos_page.html delete mode 100644 institut/static/fonts/pirati-ui/style.css diff --git a/home/migrations/0024_homepersonpage_name_titles.py b/home/migrations/0024_homepersonpage_name_titles.py new file mode 100644 index 0000000..d57bb69 --- /dev/null +++ b/home/migrations/0024_homepersonpage_name_titles.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.4 on 2023-08-19 22:46 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("home", "0023_homepage_academic_council"), + ] + + operations = [ + migrations.AddField( + model_name="homepersonpage", + name="name_titles", + field=models.CharField( + blank=True, max_length=32, null=True, verbose_name="Tituly" + ), + ), + ] diff --git a/home/migrations/0025_homearticlepage_image_and_more.py b/home/migrations/0025_homearticlepage_image_and_more.py new file mode 100644 index 0000000..9d21716 --- /dev/null +++ b/home/migrations/0025_homearticlepage_image_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.4 on 2023-08-19 23:08 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("wagtailimages", "0025_alter_image_file_alter_rendition_file"), + ("home", "0024_homepersonpage_name_titles"), + ] + + operations = [ + migrations.AddField( + model_name="homearticlepage", + name="image", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailimages.image", + verbose_name="Obrázek", + ), + ), + migrations.AddField( + model_name="homearticlepage", + name="show_image_on_homepage", + field=models.BooleanField( + default=False, verbose_name="Zobrazovat obrázek na homepage" + ), + ), + ] diff --git a/home/migrations/0026_socialmediasettings.py b/home/migrations/0026_socialmediasettings.py new file mode 100644 index 0000000..596a2da --- /dev/null +++ b/home/migrations/0026_socialmediasettings.py @@ -0,0 +1,55 @@ +# Generated by Django 4.2.4 on 2023-08-20 14:17 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("wagtailcore", "0083_workflowcontenttype"), + ("home", "0025_homearticlepage_image_and_more"), + ] + + operations = [ + migrations.CreateModel( + name="SocialMediaSettings", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "mastodon", + models.URLField(blank=True, help_text="Mastodon 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), + ), + ( + "facebook", + models.URLField(blank=True, help_text="Facebook URL", null=True), + ), + ( + "site", + models.OneToOneField( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to="wagtailcore.site", + ), + ), + ], + options={ + "verbose_name": "Sociální sítě", + }, + ), + ] diff --git a/home/migrations/0027_remove_homedocumentpage_tags_and_more.py b/home/migrations/0027_remove_homedocumentpage_tags_and_more.py new file mode 100644 index 0000000..3359215 --- /dev/null +++ b/home/migrations/0027_remove_homedocumentpage_tags_and_more.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.4 on 2023-08-20 15:50 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("home", "0026_socialmediasettings"), + ] + + operations = [ + migrations.RemoveField( + model_name="homedocumentpage", + name="tags", + ), + migrations.RemoveField( + model_name="homeeventpage", + name="tags", + ), + ] diff --git a/home/migrations/0028_articletag_remove_homearticlepage_tags_delete_tag_and_more.py b/home/migrations/0028_articletag_remove_homearticlepage_tags_delete_tag_and_more.py new file mode 100644 index 0000000..b3de88d --- /dev/null +++ b/home/migrations/0028_articletag_remove_homearticlepage_tags_delete_tag_and_more.py @@ -0,0 +1,57 @@ +# Generated by Django 4.2.4 on 2023-08-20 16:06 + +import django.db.models.deletion +import modelcluster.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("taggit", "0005_auto_20220424_2025"), + ("home", "0027_remove_homedocumentpage_tags_and_more"), + ] + + operations = [ + migrations.CreateModel( + name="ArticleTag", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ], + options={ + "abstract": False, + }, + ), + migrations.RemoveField( + model_name="homearticlepage", + name="tags", + ), + migrations.DeleteModel( + name="Tag", + ), + migrations.AddField( + model_name="articletag", + name="content_object", + field=modelcluster.fields.ParentalKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="tagged_items", + to="home.homearticlepage", + ), + ), + migrations.AddField( + model_name="articletag", + name="tag", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="%(app_label)s_%(class)s_items", + to="taggit.tag", + ), + ), + ] diff --git a/home/migrations/0029_homearticlepage_tags.py b/home/migrations/0029_homearticlepage_tags.py new file mode 100644 index 0000000..b4bd0bb --- /dev/null +++ b/home/migrations/0029_homearticlepage_tags.py @@ -0,0 +1,25 @@ +# Generated by Django 4.2.4 on 2023-08-20 16:06 + +import modelcluster.contrib.taggit +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("taggit", "0005_auto_20220424_2025"), + ("home", "0028_articletag_remove_homearticlepage_tags_delete_tag_and_more"), + ] + + operations = [ + migrations.AddField( + model_name="homearticlepage", + name="tags", + field=modelcluster.contrib.taggit.ClusterTaggableManager( + blank=True, + help_text="A comma-separated list of tags.", + through="home.ArticleTag", + to="taggit.Tag", + verbose_name="Štítky", + ), + ), + ] diff --git a/home/migrations/0030_homevideospage_homevideopage.py b/home/migrations/0030_homevideospage_homevideopage.py new file mode 100644 index 0000000..ef74a1d --- /dev/null +++ b/home/migrations/0030_homevideospage_homevideopage.py @@ -0,0 +1,116 @@ +# Generated by Django 4.2.4 on 2023-08-20 16:50 + +import django.db.models.deletion +import django.utils.timezone +import wagtail.contrib.routable_page.models +import wagtail.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("wagtailimages", "0025_alter_image_file_alter_rendition_file"), + ("wagtailcore", "0083_workflowcontenttype"), + ("home", "0029_homearticlepage_tags"), + ] + + operations = [ + migrations.CreateModel( + name="HomeVideosPage", + fields=[ + ( + "page_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="wagtailcore.page", + ), + ), + ( + "content", + wagtail.fields.RichTextField( + blank=True, null=True, verbose_name="Obsah" + ), + ), + ], + options={ + "verbose_name": "Rozcestník videí", + }, + bases=( + wagtail.contrib.routable_page.models.RoutablePageMixin, + "wagtailcore.page", + ), + ), + migrations.CreateModel( + name="HomeVideoPage", + fields=[ + ( + "page_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="wagtailcore.page", + ), + ), + ( + "author", + models.CharField( + blank=True, + max_length=128, + null=True, + verbose_name="Jméno autora", + ), + ), + ( + "date", + models.DateField( + default=django.utils.timezone.now, + verbose_name="Datum vytvoření", + ), + ), + ("content", wagtail.fields.RichTextField(verbose_name="Obsah")), + ( + "embed_url", + models.URLField( + help_text="Pro získání adresy zmáčkni tlačítko Sdílet, vyber záložku Embed a zaškrtní zobrazování pouze URL.", + verbose_name="URL Embedu", + ), + ), + ( + "author_page", + models.ForeignKey( + blank=True, + help_text="Pokud je vybrána stránka, není nutno vyplňovat jméno autora níže.", + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="home.homepersonpage", + verbose_name="Stránka autora", + ), + ), + ( + "thumbnail", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailimages.image", + verbose_name="Náhledový obrázek", + ), + ), + ], + options={ + "abstract": False, + }, + bases=( + wagtail.contrib.routable_page.models.RoutablePageMixin, + "wagtailcore.page", + ), + ), + ] diff --git a/home/migrations/0031_alter_homevideopage_options.py b/home/migrations/0031_alter_homevideopage_options.py new file mode 100644 index 0000000..da76e7a --- /dev/null +++ b/home/migrations/0031_alter_homevideopage_options.py @@ -0,0 +1,16 @@ +# Generated by Django 4.2.4 on 2023-08-20 16:53 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("home", "0030_homevideospage_homevideopage"), + ] + + operations = [ + migrations.AlterModelOptions( + name="homevideopage", + options={"verbose_name": "Video"}, + ), + ] diff --git a/home/migrations/0032_alter_homevideopage_content.py b/home/migrations/0032_alter_homevideopage_content.py new file mode 100644 index 0000000..9963490 --- /dev/null +++ b/home/migrations/0032_alter_homevideopage_content.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.4 on 2023-08-20 16:54 + +import wagtail.fields +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("home", "0031_alter_homevideopage_options"), + ] + + operations = [ + migrations.AlterField( + model_name="homevideopage", + name="content", + field=wagtail.fields.RichTextField( + blank=True, null=True, verbose_name="Obsah" + ), + ), + ] diff --git a/home/models.py b/home/models.py index 534b0c1..4423dbb 100644 --- a/home/models.py +++ b/home/models.py @@ -1,5 +1,8 @@ from django.db import models from django.utils import timezone +from modelcluster.contrib.taggit import ClusterTaggableManager +from modelcluster.fields import ParentalKey +from taggit.models import TaggedItemBase from wagtail.admin.panels import ( FieldPanel, MultiFieldPanel, @@ -8,12 +11,24 @@ from wagtail.admin.panels import ( ) from wagtail.blocks import PageChooserBlock from wagtail.contrib.routable_page.models import RoutablePageMixin, path +from wagtail.contrib.settings.models import BaseSiteSetting, register_setting from wagtail.documents import get_document_model from wagtail.fields import RichTextField, StreamField from wagtail.models import Page from .blocks import PersonBlock +# --- BEGIN Tags --- + + +class ArticleTag(TaggedItemBase): + content_object = ParentalKey( + "home.HomeArticlePage", on_delete=models.CASCADE, related_name="tagged_items" + ) + + +# --- END Tags --- + class HomePage(RoutablePageMixin, Page): heading_text = RichTextField(verbose_name="Hlavní text stránky") @@ -137,6 +152,7 @@ class HomePage(RoutablePageMixin, Page): "home.HomeArticlesPage", "home.HomeEventsPage", "home.HomeDocumentsPage", + "home.HomeVideosPage", "home.HomePeoplePage", ] @@ -242,7 +258,7 @@ class HomePage(RoutablePageMixin, Page): verbose_name = "Domovská stránka" -# --- BEGIN Articles, events and documents --- +# --- BEGIN Articles, events, videos and documents --- class HomeArticlesPage(RoutablePageMixin, Page): @@ -257,7 +273,21 @@ class HomeArticlesPage(RoutablePageMixin, Page): @property def articles(self): - return HomeArticlePage.objects.live().order_by("-date").all() + return HomeArticlePage.objects.live().order_by("-date") + + def get_context(self, request): + context = super().get_context(request) + articles = self.articles + + # Filter by tag + tag = request.GET.get("tag") + if tag: + articles = articles.filter(tags__name=tag) + context["filtered_tag"] = tag + + context["articles"] = articles + + return context class Meta: verbose_name = "Rozcestník článků" @@ -299,9 +329,25 @@ class HomeDocumentsPage(RoutablePageMixin, Page): verbose_name = "Rozcestník dokumentů" -class HomeContentPageMixin(RoutablePageMixin, Page): - tags = models.ManyToManyField("Tag", verbose_name="Štítky") +class HomeVideosPage(RoutablePageMixin, Page): + content = RichTextField(verbose_name="Obsah", blank=True, null=True) + + parent_page_type = ["home.HomePage"] + subpage_types = ["home.HomeVideoPage"] + + content_panels = Page.content_panels + [ + FieldPanel("content", icon="pilcrow"), + ] + + @property + def videos(self): + return HomeVideoPage.objects.live().order_by("-date").all() + + class Meta: + verbose_name = "Rozcestník videí" + +class HomeContentPageMixin(RoutablePageMixin, Page): author_page = models.ForeignKey( "home.HomePersonPage", on_delete=models.SET_NULL, @@ -348,6 +394,22 @@ class HomeContentPageMixin(RoutablePageMixin, Page): class HomeArticlePage(HomeContentPageMixin): + image = models.ForeignKey( + "wagtailimages.Image", + null=True, + blank=True, + on_delete=models.SET_NULL, + related_name="+", + verbose_name="Obrázek", + ) + + show_image_on_homepage = models.BooleanField( + verbose_name="Zobrazovat obrázek na homepage", + default=False, + ) + + tags = ClusterTaggableManager(through=ArticleTag, blank=True, verbose_name="Štítky") + perex = models.TextField(verbose_name="Perex") content_panels = Page.content_panels + [ @@ -358,8 +420,16 @@ class HomeArticlePage(HomeContentPageMixin): ], heading="Autor", ), + MultiFieldPanel( + [ + FieldPanel("image", icon="image", heading=" "), + FieldPanel("show_image_on_homepage"), + ], + heading="Obrázek", + ), FieldPanel("date", icon="calendar"), FieldPanel("perex", icon="pilcrow"), + FieldPanel("tags", icon="tag"), FieldPanel("content", icon="pilcrow"), ] @@ -418,7 +488,42 @@ class HomeDocumentPage(HomeContentPageMixin): verbose_name = "Dokument" -# --- END Articles, events and documents --- +class HomeVideoPage(HomeContentPageMixin): + embed_url = models.URLField( + verbose_name="URL Embedu", + help_text="Pro získání adresy zmáčkni tlačítko Sdílet, vyber záložku Embed a zaškrtní zobrazování pouze URL.", + ) + + thumbnail = models.ForeignKey( + "wagtailimages.Image", + null=True, + blank=True, + on_delete=models.SET_NULL, + related_name="+", + verbose_name="Náhledový obrázek", + ) + + content = RichTextField(verbose_name="Obsah", blank=True, null=True) + + content_panels = Page.content_panels + [ + FieldPanel("embed_url", icon="link"), + FieldPanel("thumbnail", icon="image"), + MultiFieldPanel( + [ + FieldPanel("author_page", icon="user"), + FieldPanel("author", icon="user"), + ], + heading="Autor", + ), + FieldPanel("date", icon="calendar"), + FieldPanel("content", icon="pilcrow"), + ] + + class Meta: + verbose_name = "Video" + + +# --- END Articles, events, videos and documents --- # --- BEGIN People --- @@ -450,6 +555,13 @@ class HomePersonPage(RoutablePageMixin, Page): verbose_name="Profilový obrázek", ) + name_titles = models.CharField( + max_length=32, + blank=True, + null=True, + verbose_name="Tituly", + ) + position = models.TextField(verbose_name="Pracovní pozice", blank=True, null=True) email = models.EmailField(verbose_name="Emailová adresa", blank=True, null=True) @@ -457,22 +569,63 @@ class HomePersonPage(RoutablePageMixin, Page): description = RichTextField(verbose_name="Popis", blank=True, null=True) content_panels = Page.content_panels + [ + FieldPanel("name_titles", icon="pilcrow"), FieldPanel("image", icon="image"), FieldPanel("position", icon="pilcrow"), FieldPanel("email", icon="mail"), FieldPanel("description", icon="pilcrow"), ] + @property + def full_name(self) -> str: + name = self.title + + if self.name_titles is not None: + name = f"{self.name_titles} {name}" + + return name + + @property + def inline_position(self) -> str: + """Returns this person's position formatted to fit on a single line.""" + + if self.position is None: + return None + + split_positions = self.position.split("\n") + split_positions = [position.strip() for position in split_positions] + + return ", ".join(split_positions) + class Meta: verbose_name = "Osoba" # --- END People --- +# --- BEGIN Settings --- + +@register_setting +class SocialMediaSettings(BaseSiteSetting): + mastodon = models.URLField(blank=True, null=True, help_text="Mastodon URL") + twitter = models.URLField(blank=True, null=True, help_text="Twitter URL") + linkedin = models.URLField(blank=True, null=True, help_text="LinkedIn URL") + facebook = models.URLField(blank=True, null=True, help_text="Facebook URL") -class Tag(models.Model): - name = models.CharField(verbose_name="Jméno", max_length=32) + panels = [ + MultiFieldPanel( + [ + FieldPanel("mastodon"), + FieldPanel("twitter"), + FieldPanel("linkedin"), + FieldPanel("facebook"), + ], + heading="Nastavení sociálních sítí", + ) + ] class Meta: - verbose_name = "Štítek" - verbose_name_plural = "Štítky" + verbose_name = "Sociální sítě" + + +# --- END Settings --- diff --git a/home/static/fonts/bebas-neue/bebas-neue-v10-latin_latin-ext-regular.woff2 b/home/static/home/fonts/bebas-neue/bebas-neue-v10-latin_latin-ext-regular.woff2 similarity index 100% rename from home/static/fonts/bebas-neue/bebas-neue-v10-latin_latin-ext-regular.woff2 rename to home/static/home/fonts/bebas-neue/bebas-neue-v10-latin_latin-ext-regular.woff2 diff --git a/home/static/fonts/bebas-neue/style.css b/home/static/home/fonts/bebas-neue/style.css similarity index 100% rename from home/static/fonts/bebas-neue/style.css rename to home/static/home/fonts/bebas-neue/style.css diff --git a/institut/static/fonts/pirati-ui/pirati-ui.eot b/home/static/home/fonts/pirati-ui/pirati-ui.eot similarity index 76% rename from institut/static/fonts/pirati-ui/pirati-ui.eot rename to home/static/home/fonts/pirati-ui/pirati-ui.eot index 7d2e824a94e622568aa2591e684456951d0d8e20..f81505c9eafe633cf7ba41c3c60d62dd9856e6b4 100644 GIT binary patch delta 5978 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 B@KXQ) delta 291 zcmaFzfbqu`Mz)G528J_{6WPpIbXUploaj(5*v-Jeu!n(xAt5<8u|PcR(x-_RWa`yE z@})B{Fjg=y1eau_CZ@>e`X)0lguG#3U@*(bNKNEe#A?XE5URq!z@U<mTT-!kijWWk zL#PJ>1LJ|5{N%(72X^0LU<l`6U|@KZn^;l6(8MIozz`17uaK9Ro9f|y&y#^6f`@^D zab7`waR~!60|Ns?<QfJB1_cIYX2x%ma~SOzvnQ`%^k&T7{DW~}uqGn|0|OHS!%o>% zy7BxrUm3VrKw22?Zfhw7F(CB+?JN%_*JVpef`k}Y9x#A(f!R=^VDpCT1B{a=<UZnI SU;xV&FiA29Ztlyw#s~oNx=tAY diff --git a/institut/static/fonts/pirati-ui/pirati-ui.svg b/home/static/home/fonts/pirati-ui/pirati-ui.svg similarity index 74% rename from institut/static/fonts/pirati-ui/pirati-ui.svg rename to home/static/home/fonts/pirati-ui/pirati-ui.svg index cbbaf10..db8387b 100644 --- a/institut/static/fonts/pirati-ui/pirati-ui.svg +++ b/home/static/home/fonts/pirati-ui/pirati-ui.svg @@ -115,4 +115,12 @@ <glyph unicode="" glyph-name="bed" horiz-adv-x="1170" d="M146.286 365.714h987.429c20 0 36.571-16.571 36.571-36.571v-256h-146.286v146.286h-877.714v-146.286h-146.286v694.857c0 20 16.571 36.571 36.571 36.571h73.143c20 0 36.571-16.571 36.571-36.571v-402.286zM475.429 548.571c0 80.571-65.714 146.286-146.286 146.286s-146.286-65.714-146.286-146.286 65.714-146.286 146.286-146.286 146.286 65.714 146.286 146.286zM1170.286 402.286v36.571c0 121.143-98.286 219.429-219.429 219.429h-402.286c-20 0-36.571-16.571-36.571-36.571v-219.429h658.286z" /> <glyph unicode="" glyph-name="train" horiz-adv-x="878" d="M621.714 950.857c141.143 0 256-81.714 256-182.857v-512c0-98.857-109.143-178.857-246.286-182.286l121.714-115.429c12-11.429 4-31.429-12.571-31.429h-603.429c-16.571 0-24.571 20-12.571 31.429l121.714 115.429c-137.143 3.429-246.286 83.429-246.286 182.286v512c0 101.143 114.857 182.857 256 182.857h365.714zM438.857 182.857c60.571 0 109.714 49.143 109.714 109.714s-49.143 109.714-109.714 109.714-109.714-49.143-109.714-109.714 49.143-109.714 109.714-109.714zM768 512v292.571h-658.286v-292.571h658.286z" /> <glyph unicode="" glyph-name="bus" horiz-adv-x="878" d="M219.429 256c0 40.571-32.571 73.143-73.143 73.143s-73.143-32.571-73.143-73.143 32.571-73.143 73.143-73.143 73.143 32.571 73.143 73.143zM804.571 256c0 40.571-32.571 73.143-73.143 73.143s-73.143-32.571-73.143-73.143 32.571-73.143 73.143-73.143 73.143 32.571 73.143 73.143zM778.286 482.286l-41.143 219.429c-3.429 17.143-18.286 29.714-36 29.714h-524.571c-17.714 0-32.571-12.571-36-29.714l-41.143-219.429c-4-22.857 13.143-43.429 36-43.429h606.857c22.857 0 40 20.571 36 43.429zM649.143 832c0 15.429-12 27.429-27.429 27.429h-365.714c-14.857 0-27.429-12-27.429-27.429s12.571-27.429 27.429-27.429h365.714c15.429 0 27.429 12 27.429 27.429zM877.714 417.714v-344.571h-73.143v-73.143c0-40.571-32.571-73.143-73.143-73.143s-73.143 32.571-73.143 73.143v73.143h-438.857v-73.143c0-40.571-32.571-73.143-73.143-73.143s-73.143 32.571-73.143 73.143v73.143h-73.143v344.571c0 46.857 4 81.714 14.286 127.429l58.857 259.429c10.857 91.429 170.857 146.286 365.714 146.286s354.857-54.857 365.714-146.286l60-259.429c10.286-45.714 13.143-80.571 13.143-127.429z" /> +<glyph unicode="" glyph-name="donation-full" d="M579.709 195.28c-1.324-0.361-2.167-1.204-2.528-2.528s0.241-2.528 1.324-3.25l33.343-22.028c0.722-0.481 1.565-0.602 2.407-0.481l301.531 60.065c-4.935 23.593-31.537 29.491-73.547 20.102l-262.53-51.88zM583.561 832.045c-47.547 83.658-120.251 150.585-220.882 120.612-82.454-24.435-142.881-104.362-142.881-198.974 0-131.085 134.696-237.493 221.243-321.994l121.816-112.066c13.361-12.398 33.945-12.398 47.306 0l121.696 112.066c86.667 84.38 221.243 190.789 221.243 321.994 0 92.205-57.297 170.326-136.381 196.928-102.797 34.667-178.029-32.139-227.141-118.566-0.602-1.204-1.685-1.806-3.009-1.806s-2.407 0.722-3.009 1.806zM152.631 324.078c-15.769-10.232-94.010-55.25-132.649-87.149-12.759-10.713-19.982-24.195-19.982-52.963v-234.122c0-18.296 17.935-14.565 27.204-8.306l173.696 118.566c14.445 9.87 31.658 9.991 48.028 3.972l183.928-67.769c56.815-20.945 112.307-15.167 169.964 3.13l373.152 118.686c79.325 19.139 51.399 111.464-24.315 97.501l-348.596-72.343c-0.843-0.241-1.565 0-2.287 0.361l-26 15.408c-0.963 0.602-1.926 0.602-2.889 0.241-0.963-0.481-1.685-1.204-1.926-2.167-9.389-33.824-35.389-47.547-65.964-43.334l-88.714 12.278c-11.074 1.565-26.241 7.222-35.148 13.963l-99.788 75.232c-10.954 7.222 0.361 22.269 9.75 14.685l98.584-71.14c8.907-6.5 18.056-9.87 29.010-11.315l88.955-11.556c41.287-9.269 64.038 53.806 19.259 78.603l-85.464 48.028c-34.667 20.824-62.714 55.491-99.908 72.825-56.815 26.482-125.547 29.13-187.9-11.315z" /> +<glyph unicode="" glyph-name="donation-outline" horiz-adv-x="1116" d="M717.43 356.829c-17.185 0-33.845 5.903-47.356 16.66l-1.574 1.443-45.257 39.092-21.645 17.972c-127.77 107.437-219.991 185.359-219.991 309.719s89.466 218.285 204.511 218.285c48.668 0.525 95.762-17.841 131.312-51.029 35.55 33.32 82.513 51.554 131.181 51.029 114.783 0 204.511-95.893 204.774-218.417 0-95.106-58.638-163.845-115.964-218.548-28.466-27.417-60.737-54.834-97.992-86.58l-6.428-5.378c-21.12-17.972-43.683-36.731-66.771-56.933l-1.574-1.443c-13.512-10.363-30.172-16.004-47.225-15.873zM586.117 871.19c-64.541 0-115.046-56.408-115.046-128.82 0-79.233 61.13-134.198 188.114-241.242l22.17-19.021c11.675-9.97 23.875-20.202 35.812-30.959 20.071 17.972 39.617 33.976 57.851 49.324l6.034 5.247c35.812 30.828 67.296 57.326 94.057 82.906 53.784 50.636 88.285 96.156 88.285 153.875 0 71.625-50.636 128.82-115.177 128.82-38.83-0.394-74.511-21.383-93.663-55.227-8.264-12.331-22.17-19.677-37.124-19.677v0c-14.955-0.131-28.86 7.346-37.255 19.677-19.021 33.845-54.965 54.834-94.057 55.096zM276.53 16.676v0c17.185 9.445 38.043 9.445 55.227 0 157.68-83.956 234.683-84.218 264.068-78.578 0 0 238.618 7.871 483.665 235.601l19.677 19.677c17.709 17.709 21.514 45.126 9.183 67.034v0c-19.021 33.32-61.393 44.995-94.844 25.974-1.968-1.181-3.935-2.361-5.903-3.804v0l-76.216-42.896c-50.636-27.942-99.304-59.425-145.611-94.057-87.629-72.281-213.038-75.692-304.471-8.396 109.667-38.567 215.006-7.346 263.018 31.746 43.552 34.369 41.978 75.823-42.24 81.332-129.476 8.789-169.617 32.271-181.948 46.438-11.019 13.118-24.137 24.137-38.83 32.795-174.077 97.861-345.006-55.49-345.006-55.49l9.839-17.972 110.848-205.954 17.972-31.877c0.525-0.918 1.705-1.443 2.624-1.049v0zM108.88 261.198l140.101-256.853-106.388-66.115-142.594 267.085z" /> +<glyph unicode="" glyph-name="helios" horiz-adv-x="1087" d="M323.005-53.723c-82.623 17.892-141.556 51.591-201.675 115.321-88.495 93.809-132.229 216.201-119.009 333.051 9.475 83.749 10.736 84.371 62.010 30.616 26.899-28.201 43.375-51.833 40.805-58.529-7.421-19.34 10.651-107.642 31.23-152.593 27.906-60.955 89.477-123.132 149.292-150.761 44.759-20.675 57.076-22.73 136.201-22.73 80.251 0 90.662 1.802 134.342 23.248 92.723 45.525 155.431 132.83 171.68 239.019 4.55 29.738 11.633 61.187 15.739 69.886 11.944 25.304 75.999 95.197 81.867 89.329 10.748-10.748 13.615-140.775 4.187-189.829-44.615-232.117-270.154-377.244-506.67-326.026zM235.947 286.683c-97.83 98.346-174.314 177.341-169.965 175.545 29.455-12.161 87.806-40.328 202.471-97.736l131.625-65.899 341.867 300.060c188.027 165.033 343.371 300.060 345.21 300.060s-80.978-100.535-184.035-223.412c-103.058-122.877-251.722-300.663-330.365-395.080s-146.576-171.821-150.962-172.008c-4.386-0.179-88.017 80.125-185.847 178.47zM333.046 380.575c-69.504 30.215-77.19 147.321-11.884 181.071 46.018 23.782 90.145 19.083 125.557-13.37 23.856-21.862 29.14-32.649 31.958-65.244 4.138-47.862-14.272-81.6-55.101-100.974-33.495-15.894-56.51-16.271-90.529-1.483zM87.73 517.854c-22.835 11.052-41.519 23.551-41.519 27.776 0 17.363 51.75 86.469 93.979 125.497 154.894 143.154 405.997 142.989 560.44-0.368 18.486-17.159 33.275-34.278 32.866-38.042s-16.372-20.605-35.472-37.422l-34.727-30.577-28.372 24.911c-101.096 88.763-228.25 111.963-338.076 61.683-50.714-23.218-121.895-86.409-144.394-128.187-8.217-15.258-16.8-27.207-19.073-26.554-2.273 0.655-22.816 10.23-45.652 21.282zM769.468 712.151c-13.914 10.174-14.171 12.42-2.947 25.702 84.847 100.4 162.568 190.885 172.132 200.401 13.897 13.828 19.429 23.274-77.578-132.466-35.898-57.632-67.765-104.786-70.815-104.786s-12.406 5.017-20.792 11.148zM692.897 766.247c-11.311 8.781-6.311 19.839 44.755 98.989 31.619 49.007 59.96 91.576 62.981 94.597s-12.864-35.296-35.3-85.15c-22.436-49.853-42.585-96.871-44.774-104.482-4.722-16.417-10.539-17.249-27.663-3.954zM220.82 776.791c0.38 9.213 2.253 11.087 4.778 4.778 2.284-5.709 2.004-12.53-0.624-15.158s-4.497 2.043-4.154 10.38zM606.82 802.836c-10.919 4.221-7.74 15.716 22.142 80.059 35.822 77.133 38.463 67.213 7.945-29.845-13.808-43.916-19.934-54.139-30.087-50.213zM316.345 819.628c0 10.874 1.795 15.323 3.989 9.885s2.194-14.334 0-19.771c-2.194-5.437-3.989-0.988-3.989 9.886zM410.785 848.818c-0.434 18.229 2.771 35.343 7.12 38.032 9.217 5.697 9.217-22.623 0-51.405-5.408-16.886-6.447-14.935-7.12 13.373zM505.005 829.514c0.060 5.437 7.084 31.238 15.612 57.336l15.505 47.45-4.321-43.496c-2.377-23.923-6.083-49.724-8.237-57.336-4.475-15.818-18.72-18.853-18.559-3.954z" /> +<glyph unicode="" glyph-name="redmine" horiz-adv-x="1501" d="M0-64.003h325.808l23.272 279.283-302.555 69.797zM58.18 331.64l290.9-69.816 69.816 244.356-244.356 127.977zM197.792 680.72l232.72-127.996 186.195 127.996-174.54 197.812zM1501.024-64.003h-325.788l-23.291 279.283 302.555 69.797zM1442.844 331.64l-290.9-69.816-69.797 244.356 244.336 127.977zM1303.212 680.72l-232.72-127.996-186.156 127.996 174.54 197.812zM500.348 913.44l174.54-209.448h162.885l151.287 209.448-151.287 46.544h-166.976z" /> +<glyph unicode="" glyph-name="zulip" horiz-adv-x="919" d="M918.742 806.888c0-51.583-23.166-97.414-58.471-125.218l-342.735-306.088c-6.365-5.456-14.641 3.342-10.048 10.685l125.718 251.709c3.524 7.047-1.046 15.709-8.275 15.709h-487.618c-75.522 0-137.312 68.929-137.312 153.158 0 84.252 61.791 153.158 137.312 153.158h644.118c75.522 0.045 137.312-68.884 137.312-153.112zM137.312-64h644.118c75.522 0 137.312 68.929 137.312 153.158 0 84.252-61.791 153.158-137.312 153.158h-487.618c-7.229 0-11.799 8.662-8.275 15.709l125.718 251.709c4.592 7.343-3.683 16.141-10.048 10.685l-342.735-306.043c-35.306-27.781-58.471-73.635-58.471-125.218 0-84.229 61.791-153.158 137.312-153.158z" /> +<glyph unicode="" glyph-name="forum" d="M17.552 181.544c-11.34 4.238-17.537 13.082-17.537 25.116 0 20.572 19.788 32.762 38.106 23.467 9.506-4.816 13.451-11.065 13.919-22.060 0.329-7.721 0.017-9.129-3.236-14.723-6.279-10.736-20.117-15.963-31.273-11.809zM87.449 181.698c-6.648 2.362-10.253 5.349-14.254 11.802-6.65 10.688-4.031 25.511 5.96 33.741 12.878 10.602 32.307 6.751 39.982-7.936 7.83-14.991 0.687-32.965-14.99-37.608-7.22-2.152-10.631-2.142-16.699 0.017zM163.579 181.331c-6.684 1.859-15.595 10.891-17.37 17.604-5.578 20.892 12.355 38.925 33.149 33.325 7.688-2.060 15.997-10.824 17.936-18.858 4.874-20.318-13.417-37.738-33.685-32.076zM236.020 181.406c-2.955 0.785-6.751 3.3-10.268 6.822-7.119 7.119-9.379 15.159-7.019 24.975 1.993 8.314 10.101 16.968 17.83 19.013 27.104 7.229 45.879-24.381 26.18-44.081-7.521-7.521-15.829-9.632-26.707-6.751zM308.525 181.698c-6.65 2.362-10.253 5.349-14.254 11.802-6.65 10.688-4.031 25.511 5.96 33.741 12.869 10.602 32.307 6.751 39.971-7.947 11.26-21.542-9.062-45.644-31.674-37.598zM699.661 181.146c-15.697 4.706-23.333 23.915-15.293 38.548 12.926 23.538 49.062 14.419 49.323-12.472 0.174-18.131-16.901-31.212-34.023-26.080zM772.129 181.331c-6.684 1.859-15.595 10.891-17.37 17.604-4.39 16.466 5.812 32.114 22.171 34.053 8.828 1.046 15.292-1.257 21.792-7.755 19.555-19.555 0.285-51.406-26.582-43.902zM844.814 181.612c-9.961 3.547-15.695 10-17.772 19.972-1.085 5.142-1.022 7.688 0.251 12.269 2.194 7.849 10.536 16.445 17.811 18.392 27.104 7.229 45.879-24.381 26.18-44.081-7.621-7.621-16.968-9.933-26.464-6.549zM919.843 181.497c-7.22 2.697-11.454 6.516-14.79 13.317-4.238 8.663-3.856 19.213 0.979 26.515 6.269 9.464 18.915 14.002 30.253 10.837 6.784-1.892 14.824-9.43 16.957-15.902 2.362-7.132 1.089-18.537-2.665-24.234-6.221-9.41-20.563-14.321-30.728-10.524zM989.803 181.544c-6.88 2.563-12.277 7.287-15.159 13.25-3.87 8.015-3.065 19.894 1.831 26.978 4.525 6.521 14.157 11.641 21.948 11.641 7.81 0 17.423-5.108 21.987-11.686 3.266-4.706 3.568-5.998 3.568-14.942 0-8.663-0.377-10.349-3.236-14.69-6.315-9.555-20.563-14.4-30.938-10.536zM328.406 259.684c-21.122 3.903-28.218 31.508-11.793 45.931 11.822 10.377 30.737 7.626 39.613-5.756 3.769-5.712 5.039-16.164 2.764-23.031-4.004-12.144-17.303-19.581-30.569-17.135zM685.836 259.55c-8.358 1.557-15.436 7.112-19.603 15.35-3.14 6.231-2.102 18.543 2.102 24.908 4.773 7.22 11.507 11.239 19.849 11.842 16.628 1.192 28.548-9.632 28.548-25.912 0-16.881-14.556-29.206-30.904-26.154zM249.408 261.192c-20.385 5.578-26.106 31.513-10.067 45.602 5.63 4.941 11.541 6.684 20.039 5.913 13.082-1.19 22.362-10.503 23.296-23.411 0.611-8.358-1.201-14.321-6.013-19.807-6.885-7.855-17.303-11.017-27.249-8.291zM761.12 260.895c-6.65 1.524-15.125 9.129-17.705 15.883-2.898 7.617-1.959 17.955 2.21 24.271 4.874 7.354 11.531 11.22 20.318 11.775 16.231 1.027 28.057-9.884 28.057-25.912 0-8.66-1.889-13.585-7.22-18.945-6.583-6.583-16.23-9.235-25.644-7.084zM23.788 262.303c-2.295 0.721-6.65 3.803-9.68 6.822-7.064 7.052-9.303 15.116-6.948 24.975 2.636 11.017 14.288 20.15 25.677 20.117 14.080-0.019 26.591-12.613 26.591-26.745 0-7.152-2.578-13.015-8.157-18.576-7.688-7.688-17.001-9.932-27.491-6.589zM94.969 262.39c-7.019 2.51-11.357 6.318-14.623 12.869-5.542 11.105-3.669 22.201 5.204 30.804 19.414 18.844 50.3 1.066 43.974-25.3-1.144-4.767-2.797-7.521-7.103-11.812-7.855-7.855-17.423-10.134-27.454-6.549zM168.893 263.89c-21.871 10.904-17.37 43.587 6.784 49.275 10.301 2.429 23.218-3.3 28.392-12.58 13.14-23.518-11.038-48.726-35.175-36.7zM830.693 264.073c-12.043 6.281-17.236 20.787-11.842 33.015 4.971 11.206 12.703 16.357 24.673 16.396 27.113 0.084 36.397-36.867 12.412-49.397-4.612-2.403-8.072-3.324-12.616-3.324s-8.004 0.921-12.616 3.333zM911.206 262.498c-9.341 3.333-17.37 14.778-17.37 24.774 0 11.502 9.062 23.098 20.117 25.756 9.866 2.362 17.927 0.117 24.961-6.952 11.183-11.239 11.273-26.147 0.251-37.171-7.855-7.855-17.604-10.101-27.956-6.414zM982.596 262.467c-18.040 6.445-23.299 30.335-9.632 43.858 9.729 9.622 25.001 10.369 35.46 1.725 16.365-13.484 10.703-40.921-9.498-46.013-6.65-1.676-10.746-1.559-16.337 0.419zM372.928 325.443c-11.251 4.011-17.955 13.634-17.839 25.612 0.251 27.152 36.735 36.097 49.296 12.055 7.83-14.991 0.687-32.965-14.99-37.608-7.153-2.127-10.636-2.132-16.466-0.050zM634.589 325.31c-7.22 2.697-11.454 6.516-14.79 13.317-4.406 8.993-3.87 19.535 1.324 26.949 4.606 6.549 14.178 11.667 21.826 11.667 7.889 0 17.47-5.075 22.060-11.686 3.266-4.706 3.568-5.998 3.568-14.953 0-8.663-0.369-10.349-3.236-14.69-6.279-9.477-20.582-14.4-30.77-10.601zM285.89 333.414c-6.279 1.464-11.809 5.339-15.762 11.004-4.473 6.405-5.281 19.414-1.658 26.522 2.81 5.511 8.425 10.631 14.428 13.149 6.248 2.627 17.849 1.357 23.802-2.568 10.369-6.851 14.632-20.446 10.134-32.244-2.79-7.287-10.971-14.302-18.61-15.94-3.266-0.697-6.309-1.221-6.754-1.156s-2.965 0.62-5.578 1.223zM725.95 333.35c-7.019 1.658-13.335 6.549-16.909 13.121-2.839 5.233-3.199 7.019-2.797 14.051 0.814 14.381 10.067 23.915 24.051 24.807 16.328 1.037 27.956-9.9 28.023-26.357 0.050-12.636-8.056-22.82-20.418-25.677-5.862-1.357-5.98-1.357-11.943 0.050zM197.594 339.27c-15.092 7.654-19.213 27.655-8.425 40.753 11.206 13.585 34.456 11.675 43.4-3.595 4.706-8.043 4.739-18.911 0.050-26.87-4.974-8.459-11.153-12.043-21.524-12.51-6.792-0.301-9.419 0.117-13.518 2.194zM802.311 339.476c-6.337 3.353-12.5 11.793-13.663 18.71-1.87 11.105 3.937 23.132 13.663 28.291 4.506 2.394 6.684 2.764 13.885 2.429 10.904-0.519 17.054-4.438 22.127-14.053 2.965-5.63 3.363-7.443 2.831-13.35-0.754-8.593-5.194-16.464-11.775-20.82-7.055-4.673-19.481-5.214-27.085-1.19zM119.375 339.614c-7.354 2.395-12.132 6.549-15.528 13.484-4.272 8.731-3.702 19.362 1.424 26.783 4.272 6.147 14.197 11.608 21.122 11.608 11.306 0 22.563-7.5 25.747-17.169 2.362-7.141 1.089-18.537-2.665-24.238-6.114-9.244-19.514-13.915-30.089-10.469zM888.772 339.707c-19.581 6.985-24.4 32.53-8.586 45.563 8.459 6.977 19.112 8.056 29.162 2.965 8.731-4.439 12.982-10.64 13.852-20.318 1.212-13.324-5.969-24.584-17.927-28.14-7.209-2.132-10.669-2.16-16.503-0.068zM44.654 340.682c-6.147 1.624-15.475 10.873-17.202 17.074-2.936 10.602-0.754 19.148 6.861 26.765 11.028 11.037 26.338 11.037 37.035 0.017 10.971-11.306 10.979-26.114 0.039-37.068-7.554-7.554-15.843-9.665-26.726-6.784zM963.427 340.682c-6.667 1.758-15.192 10.602-17.228 17.849-2.73 9.71-0.285 19.347 6.617 26.261 5.63 5.639 9.799 7.22 18.945 7.258 7.186 0.019 9.129-0.446 13.283-3.198 10.569-6.996 14.904-17.202 12.278-28.934-1.231-5.542-2.596-7.889-7.086-12.384-7.646-7.635-15.883-9.748-26.817-6.851zM573.050 363.739c-10.971 5.578-17.133 18.073-14.496 29.463 1.892 8.218 6.202 13.986 13.324 17.868 5.233 2.85 7.019 3.199 14.053 2.8 9.598-0.542 16.030-4.171 21.155-11.909 2.864-4.331 3.276-6.114 3.276-14.051s-0.419-9.729-3.276-14.051c-5.271-7.956-11.574-11.425-21.58-11.842-6.174-0.251-9.498 0.203-12.446 1.691zM438.819 365.948c-7.153 3.1-11.144 6.784-14.012 12.937-5.41 11.608-2.898 23.741 6.569 31.851 17.236 14.749 43.684 2.295 43.353-20.385-0.271-18.442-19.526-31.513-35.912-24.405zM505.468 374.97c-9.224 4.564-14.556 13.25-14.556 23.644 0 15.192 11.017 26.067 26.482 26.114 8.314 0.029 13.283-1.892 18.595-7.19 10.168-10.174 10.302-27.326 0.282-37.471-7.53-7.621-21.155-9.884-30.786-5.108zM334.906 394.758c-8.479 4.904-12.043 10.902-12.58 21.189-0.352 6.751 0.050 9.379 1.993 13.183 9.363 18.344 34.807 19.807 46.174 2.63 3.769-5.712 5.039-16.164 2.764-23.031-1.861-5.669-7.5-12.035-13.216-14.958-7.019-3.576-17.973-3.166-25.109 0.969zM665.032 393.458c-9.565 5.029-14.797 13.585-14.797 24.171 0 15.192 10.93 26.147 26.095 26.147 15.326 0 26.067-10.904 26.114-26.512 0.048-10.335-5.117-18.71-14.489-23.527-5.534-2.839-17.772-2.998-22.931-0.29zM244.865 405.203c-9.47 4.305-15.945 13.684-15.945 24.573 0 2.009 0.218 3.97 0.64 5.846l-0.034-0.184c4.554 21.223 31.474 27.956 45.946 11.474 4.941-5.63 6.684-11.541 5.913-20.039-0.766-8.479-4.612-14.923-11.725-19.614-6.105-4.037-18.14-5.041-24.778-2.064zM757.443 405.873c-9.216 4.564-14.556 13.25-14.556 23.644 0 15.025 11.163 26.348 26.046 26.448 8.023 0.050 13.701-2.194 19.013-7.521 5.343-5.343 7.22-10.268 7.22-18.945 0-8.090-2.462-14.061-7.917-19.246-7.521-7.152-20.446-9.041-29.832-4.406zM158.569 410.619c-6.202 1.458-14.422 8.45-17.239 14.681-6.415 14.154 1.156 31.851 15.494 36.154 20.388 6.114 38.743-10.402 34.389-30.971-3.062-14.388-17.772-23.363-32.646-19.849zM852.514 410.429c-9.498 2.362-18.052 11.697-19.781 21.591-1.899 10.902 5.059 23.896 15.271 28.526 11.589 5.271 26.716 0.721 33.249-10 8.286-13.566 3.769-30.669-9.923-37.638-5.252-2.675-13.614-3.78-18.818-2.496zM80.841 414.050c-5.946 1.114-10.989 4.031-15.159 8.76-4.941 5.611-6.684 11.541-5.911 20.030 1.19 13.159 10.503 22.362 23.576 23.299 9.531 0.687 16.298-1.993 22.356-8.876 16.628-18.878-0.050-47.851-24.874-43.218zM933.274 414.273c-7.152 1.24-12.994 5.176-16.957 11.44-4.457 7.019-5.388 13.78-3.032 21.893 3.568 12.297 14.516 19.514 28.057 18.543 20.753-1.492 31.173-26.648 17.772-42.889-6.298-7.635-15.394-10.803-25.845-8.993zM412.757 435.588c-20.010 9.9-19.303 39.413 1.156 47.956 5.779 2.429 16.706 2.362 21.926-0.116 20.418-9.699 19.748-39.807-1.056-48.492-6.329-2.645-15.931-2.362-22.027 0.653zM591.043 435.588c-19.514 9.665-19.548 37.504-0.050 47.521 8.934 4.603 22.703 2.423 30.36-4.807 10.235-9.69 10-28.358-0.486-38.335-7.521-7.141-20.446-9.041-29.826-4.399zM504.897 449.381c-11.231 6.65-15.896 18.174-12.316 30.447 3.635 12.5 13.384 19.196 26.842 18.442 9.534-0.542 15.997-4.171 21.105-11.909 2.864-4.331 3.276-6.114 3.276-14.051s-0.419-9.72-3.276-14.051c-5.252-7.947-11.574-11.407-21.57-11.842-7.454-0.318-9.070 0.017-14.053 2.965zM309.453 457.966c-23.692 5.913-27.822 38.508-6.248 49.245 23.467 11.686 47.621-12.54 35.694-35.786-5.33-10.388-18.207-16.269-29.449-13.459zM702.877 457.966c-23.768 5.946-27.755 38.538-6.047 49.342 20.753 10.339 43.199-7.454 37.805-29.966-3.266-13.617-18.241-22.762-31.745-19.38zM207.646 474.046c-13.384 4.773-20.15 18.777-16.131 33.344 1.754 6.315 10.786 15.359 17.102 17.102 18.040 4.991 34.361-7.086 34.361-25.41 0-18.683-17.792-31.273-35.33-25.021zM798.746 473.879c-5.776 1.825-14.589 10.989-16.366 17.001-3.081 10.369-0.888 18.911 6.832 26.648 11.105 11.105 25.845 11.038 37.075-0.151 10.989-10.937 10.971-25.883-0.039-36.901-7.688-7.688-17.001-9.933-27.5-6.6zM124.053 481.707c-5.98 1.524-11.734 5.678-15.427 11.105-3.091 4.539-3.434 6.013-3.434 14.757 0 8.858 0.318 10.155 3.568 14.857 4.564 6.583 14.178 11.686 21.987 11.686 7.82 0 17.423-5.108 21.987-11.686 3.266-4.706 3.568-5.998 3.568-14.953 0-8.663-0.377-10.349-3.236-14.69-5.872-8.861-18.643-13.751-29.028-11.105zM885.212 482.328c-19.089 6.818-24.167 32.177-9.028 45.142 16.434 14.080 42.027 3.935 43.568-17.269 0.955-13.284-6.153-24.271-18.023-27.792-7.22-2.142-10.679-2.16-16.533-0.077zM374.699 498.535c-15.092 7.654-19.216 27.655-8.425 40.753 11.239 13.644 34.429 11.675 43.467-3.682 6.967-11.842 3.227-28.091-8.224-35.669-6.818-4.506-19.4-5.176-26.817-1.395zM625.211 498.736c-9.732 5.146-15.542 17.172-13.663 28.285 1.163 6.918 7.327 15.36 13.663 18.71 4.506 2.394 6.687 2.764 13.885 2.429 10.843-0.519 17.068-4.439 22.016-13.885 4.406-8.43 4.419-15.368 0.050-23.994-4.807-9.496-11.046-13.44-22.060-13.954-7.2-0.349-9.379 0.048-13.885 2.429zM465.484 514.131c-6.684 1.859-15.595 10.891-17.375 17.606-5.544 20.815 12.446 38.906 33.149 33.316 7.684-2.060 15.997-10.814 17.927-18.858 4.874-20.318-13.417-37.733-33.685-32.076zM551.38 515.486c-7.119 2.663-11.373 6.434-14.623 12.946-8.712 17.47 2.127 36.949 21.483 38.575 5.98 0.514 7.855 0.117 13.484-2.771 24.129-12.424 17.104-47.559-9.951-49.831-3.501-0.285-7.922 0.174-10.388 1.089zM268.638 526.172c-6.751 3.534-9.312 5.902-12.311 11.396-3.993 7.327-4.351 18.063-0.843 24.941 9.235 18.11 34.769 19.447 46.046 2.395 3.769-5.712 5.039-16.164 2.764-23.031-1.861-5.669-7.5-12.035-13.216-14.958-5.339-2.73-17.86-3.132-22.443-0.746zM734.564 526.172c-10.636 5.544-15.461 13.121-15.427 24.149 0.050 15.678 10.77 26.582 26.114 26.582 14.923 0 26.057-11.038 26.114-25.883 0.050-10.708-5.117-19.313-14.489-24.137-5.214-2.695-17.772-3.081-22.328-0.708zM175.267 542.31c-10.134 4.606-17.068 17.248-15.339 27.985 3.367 20.988 27.956 29.943 43.835 15.969 9.923-8.727 11.842-22.429 4.74-33.906-6.684-10.803-21.629-15.326-33.247-10.048zM826.537 542.921c-17.169 7.989-19.972 31.184-5.31 43.734 17.209 14.729 43.3 2.539 43.266-20.217-0.019-19.748-19.781-31.977-37.972-23.518zM339.356 564.794c-5.846 2.73-11.742 9.235-13.663 15.092-2.395 7.287-1.056 18.528 2.898 24.238 4.798 6.948 12.714 11.439 21.661 11.439 6.717 0 12.848-2.529 17.504-6.684l-0.017 0.017c13.353-11.764 11.909-32.51-2.985-42.355-6.482-4.283-18.241-5.107-25.387-1.758zM662.359 565.091c-9.496 4.807-14.556 13.317-14.556 24.405 0 27.051 36.331 36.063 49.296 12.239 2.839-5.233 3.199-7.019 2.797-14.053-0.542-9.574-4.171-16.030-11.86-21.122-6.818-4.506-18.381-5.176-25.677-1.458zM416.31 588.915c-9.296 4.606-14.564 13.267-14.522 23.902 0.116 26.247 33.618 36.202 48.48 14.422 4.071-5.969 5.008-17.123 2.074-24.774-2.19-5.712-8.353-11.842-14.489-14.422-5.872-2.452-15.61-2.060-21.524 0.872zM585.984 588.244c-9.363 4.237-15.747 13.484-15.747 24.22 0 0.002 0 0.004 0 0.007v0c-0.050 8.024 2.194 13.701 7.521 19.021 10.803 10.803 28.627 10.101 38.819-1.524 10.402-11.86 7.646-30.757-5.812-39.648-6.114-4.037-18.14-5.041-24.778-2.064zM242.183 590.422c-6.87 2.563-12.277 7.287-15.159 13.25-3.87 8.015-3.065 19.884 1.831 26.968 4.525 6.521 14.157 11.641 21.948 11.641 7.82 0 17.423-5.108 21.987-11.686 3.266-4.706 3.568-5.998 3.568-14.953 0-8.663-0.377-10.349-3.236-14.69-6.315-9.545-20.563-14.4-30.938-10.536zM508.13 590.054c-9.9 2.898-17.236 13.818-17.236 25.677 0 27.345 37.135 36.329 49.294 11.928 10.87-21.813-8.492-44.506-32.045-37.605zM765.162 590.42c-6.88 2.563-12.278 7.287-15.159 13.25-3.87 8.023-3.065 19.904 1.831 26.978 4.539 6.551 14.154 11.641 22.027 11.641 7.688 0 17.236-5.108 21.871-11.708 3.023-4.305 3.625-6.382 3.937-13.617 0.339-7.721 0.017-9.129-3.236-14.723-6.269-10.736-20.117-15.963-31.27-11.809zM310.156 630.103c-24.204 12.278-15.259 49.095 11.996 49.353 17.268 0.155 29.698-14.556 26.29-31.139-3.702-18.040-21.725-26.616-38.285-18.207zM689.254 630.152c-9.186 4.807-13.546 12.144-13.484 22.729 0.077 13.411 7.045 22.5 19.748 25.812 12.446 3.233 24.961-2.797 30.379-14.642 10.582-23.112-13.919-45.778-36.658-33.886zM390.079 653.139c-5.455 1.57-13.614 10.067-15.394 16.027-3.459 11.551-0.62 21.893 8.033 29.296 17.161 14.69 43.218 2.362 43.19-20.417-0.019-18.442-17.093-30.301-35.835-24.908zM613.854 654.032c-6.377 2.898-13.024 10.837-14.723 17.571-4.245 16.867 8.66 33.199 26.013 32.947 19.633-0.285 31.808-20.016 23.4-37.905-3.276-6.985-5.475-9.129-12.655-12.378-6.667-3.032-15.662-3.13-22.027-0.218zM467.562 666.606c-14.167 7.172-18.576 24.975-9.498 38.383 5.008 7.403 11.957 10.971 21.357 10.971 20.756 0 33.005-19.714 23.668-38.106-4.706-9.263-11.057-13.392-21.455-13.935-6.724-0.352-8.928 0.077-14.087 2.675zM539.048 665.928c-9.565 4.428-14.857 13.183-14.857 24.507 0 14.757 11.038 25.543 26.147 25.543 15.394 0 26.182-10.904 26.114-26.415-0.050-10.882-6.192-20.059-16.279-24.284-5.41-2.261-15.494-1.959-21.125 0.653z" /> +<glyph unicode="" glyph-name="envelop" d="M928 832h-832c-52.8 0-96-43.2-96-96v-640c0-52.8 43.2-96 96-96h832c52.8 0 96 43.2 96 96v640c0 52.8-43.2 96-96 96zM398.74 409.628l-270.74-210.892v501.642l270.74-290.75zM176.38 704h671.24l-335.62-252-335.62 252zM409.288 398.302l102.712-110.302 102.71 110.302 210.554-270.302h-626.528l210.552 270.302zM625.26 409.628l270.74 290.75v-501.642l-270.74 210.892z" /> +<glyph unicode="" glyph-name="mastodon" d="M510 831c-96.656-0.392-192.626-12.664-242.562-35.688 0 0-107.438-48.908-107.438-215.5 0-198.304-0.144-447.34 178-495.5 68.224-18.336 126.894-22.282 174.062-19.562 85.6 4.832 127.938 31.062 127.938 31.062l-2.875 63.25c0 0-55.483-19.553-124.187-17.312-68.064 2.4-139.77 7.508-150.938 92.5-1.024 7.904-1.532 15.907-1.5 23.875 144.224-35.808 267.206-15.596 301.062-11.5 94.528 11.488 176.817 70.762 187.313 124.938 16.448 85.376 15.062 208.25 15.062 208.25 0 166.592-107.25 215.5-107.25 215.5-52.656 24.592-150.031 36.080-246.687 35.688zM406.562 703.938c33.116-0.888 65.84-15.704 86-47l19.5-33.125 19.438 33.125c40.48 62.944 131.207 59.016 174.375 10.312 39.808-46.336 30.938-76.242 30.938-283.25v-0.062h-78.313v180.125c0 84.32-107.5 87.577-107.5-11.687v-104.375h-77.813v104.375c0 99.264-107.437 96.070-107.437 11.75v-180.125h-78.5c0 207.168-8.71 237.266 30.938 283.25 21.744 24.512 55.259 37.576 88.375 36.688z" /> </font></defs></svg> diff --git a/institut/static/fonts/pirati-ui/pirati-ui.ttf b/home/static/home/fonts/pirati-ui/pirati-ui.ttf similarity index 76% rename from institut/static/fonts/pirati-ui/pirati-ui.ttf rename to home/static/home/fonts/pirati-ui/pirati-ui.ttf index 6077db831dd26e2cc02223051c1ecef10f0e8040..e0061eeb5955048a4416bef7bc673c118bae6e3c 100644 GIT binary patch delta 6001 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 VP2j#d0|V3Kjgi8e`6Ko+0suKE?8N{8 delta 344 zcmdmSpYhCQ#(D-u1_lOhh6V;^1_S?KeItG$wr&OnhCK`n3<=4(i3Q?emp(BtFv>76 zFodKh78fuuFbFU(FoI}~^qk5xwU2!13=E7F3=F{~8L5dW^0~gr3=AP}7#JALGBQ#V zITo=RGBAXyFfcHvWaO4qY@Q+{#J~{h!N9<HASXZBG4aBI-M1JR!Z{ci7#`&&RunKa zF-bEpgo6xF$V<#k^>DxE$-of7!@$5euOPp;gn^lXfq@}%4Fdy%0s}Miw}}Vr8M7xb zdNXEk_F-HY91Zdh69dCe*;Tsn{5D@1xLH8z8SZXtDFiVf^#AQF517v~Ffed1Fo8rF z7(n5`eBl291_oBJ0LufA2$%^Y3O2K3A7GsPB<GP3L_I?RlO%&6Sej|_!hGS)zjOC8 F0stw~PkaCX diff --git a/institut/static/fonts/pirati-ui/pirati-ui.woff b/home/static/home/fonts/pirati-ui/pirati-ui.woff similarity index 76% rename from institut/static/fonts/pirati-ui/pirati-ui.woff rename to home/static/home/fonts/pirati-ui/pirati-ui.woff index fc22ab0410e3d940917ad963a722ebeae7756cc8..521278f69c4168e1946d5b6ba40d270e0a801bf4 100644 GIT binary patch delta 6046 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 delta 359 zcmZp9z&K+Iqgc7Wn;Qco0|Ns?lmr7eh>kqNz%=<|zVJj%vHI@h+{6L~2F45q28Iw2 z77x4hDLt_mB({fvfq?^x1=4dW(-;^Sk1#L<mw>R^N51ro)Wj49hENLz1_m<_me2J~ z&d5kjWMBv_U|?WS0b!0stcDr6B^3+|p;H(b7!QE(<|#r#Ir+(n3=DqZAWI)HFfcs2 zaA5bX+{B6k28IZbfeH)^3<?ZQOwxIYxv2~c5fKawjPpR)!~LFTL4I)w14HBwuo{p$ zW(EcZX6A2`c^K^(vnTs7dNXEkp24^<SQF%NCI*I`va59C`E9;3aI=6yfZ^`8mO>B% zLjT{+@?f%DwxlFTh=Jt+B)GsF2vM*(Ao~F0WP{vCJPZtA*#ag>2EomGdDj>LSZz_n diff --git a/home/static/home/fonts/pirati-ui/style.css b/home/static/home/fonts/pirati-ui/style.css new file mode 100644 index 0000000..62f6ed5 --- /dev/null +++ b/home/static/home/fonts/pirati-ui/style.css @@ -0,0 +1,374 @@ +@font-face { + font-family: "pirati-ui"; + src: + url("./pirati-ui.eot") format("embedded-opentype"), + url("./pirati-ui.ttf") format("truetype"), + url("./pirati-ui.woff") format("woff"), + url("./pirati-ui.svg") format("svg"); + font-weight: normal; + font-style: normal; + font-display: block; +} + +[class^="ico--"], [class*=" ico--"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'pirati-ui' !important; + speak: never; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.ico--mastodon:before { + content: "\e973"; +} +.ico--helios:before { + content: "\e96e"; +} +.ico--redmine:before { + content: "\e96f"; +} +.ico--zulip:before { + content: "\e970"; +} +.ico--forum:before { + content: "\e971"; +} +.ico--pirati:before { + content: "\e90d"; +} +.ico--jitsi:before { + content: "\e90f"; +} +.ico--open-source:before { + content: "\e90e"; +} +.ico--donation-full:before { + content: "\e96c"; +} +.ico--donation-outline:before { + content: "\e96d"; +} +.ico--strategy:before { + content: "\e932"; +} +.ico--pig:before { + content: "\e928"; +} +.ico--thermometer:before { + content: "\e90a"; +} +.ico--menu:before { + content: "\e933"; +} +.ico--chevron-right:before { + content: "\e923"; +} +.ico--chevron-left:before { + content: "\e924"; +} +.ico--chevron-down:before { + content: "\e925"; +} +.ico--chevron-up:before { + content: "\e926"; +} +.ico--link-horizontal:before { + content: "\e910"; +} +.ico--beer:before { + content: "\e909"; +} +.ico--food:before { + content: "\e968"; +} +.ico--dots-three-vertical:before { + content: "\e940"; +} +.ico--dots-three-horizontal:before { + content: "\e941"; +} +.ico--log-out:before { + content: "\e942"; +} +.ico--envelope:before { + content: "\e908"; +} +.ico--pin:before { + content: "\e943"; +} +.ico--at:before { + content: "\e905"; +} +.ico--glass:before { + content: "\e967"; +} +.ico--checkmark:before { + content: "\e965"; +} +.ico--info:before { + content: "\e901"; +} +.ico--question:before { + content: "\e904"; +} +.ico--warning:before { + content: "\e93f"; +} +.ico--code:before { + content: "\e94a"; +} +.ico--checkbox-unchecked:before { + content: "\e94e"; +} +.ico--star-full:before { + content: "\e94f"; +} +.ico--star-empty:before { + content: "\e950"; +} +.ico--bookmark:before { + content: "\e951"; +} +.ico--cog:before { + content: "\e952"; +} +.ico--key:before { + content: "\e953"; +} +.ico--zoom-in:before { + content: "\e954"; +} +.ico--zoom-out:before { + content: "\e955"; +} +.ico--shrink:before { + content: "\e956"; +} +.ico--printer:before { + content: "\e957"; +} +.ico--file-openoffice:before { + content: "\e958"; +} +.ico--user:before { + content: "\e959"; +} +.ico--file-excel:before { + content: "\e95a"; +} +.ico--file-word:before { + content: "\e95b"; +} +.ico--file-pdf:before { + content: "\e95c"; +} +.ico--file-picture:before { + content: "\e95d"; +} +.ico--file-blank:before { + content: "\e95e"; +} +.ico--folder-upload:before { + content: "\e95f"; +} +.ico--upload:before { + content: "\e960"; +} +.ico--cloud-upload:before { + content: "\e961"; +} +.ico--folder-download:before { + content: "\e962"; +} +.ico--download:before { + content: "\e963"; +} +.ico--cloud-download:before { + content: "\e964"; +} +.ico--alarm:before { + content: "\e900"; +} +.ico--calculator:before { + content: "\e911"; +} +.ico--facebook-full:before { + content: "\e913"; +} +.ico--feed:before { + content: "\e927"; +} +.ico--library:before { + content: "\e929"; +} +.ico--office:before { + content: "\e92a"; +} +.ico--attachment:before { + content: "\e92b"; +} +.ico--enlarge:before { + content: "\e92c"; +} +.ico--eye-off:before { + content: "\e92e"; +} +.ico--eye:before { + content: "\e92f"; +} +.ico--share:before { + content: "\e931"; +} +.ico--search:before { + content: "\e939"; +} +.ico--pencil:before { + content: "\e93c"; +} +.ico--lock-open:before { + content: "\e947"; +} +.ico--lock:before { + content: "\e948"; +} +.ico--equalizer:before { + content: "\e949"; +} +.ico--switch:before { + content: "\e94b"; +} +.ico--loop:before { + content: "\e94c"; +} +.ico--refresh:before { + content: "\e94d"; +} +.ico--bullhorn:before { + content: "\e944"; +} +.ico--bin:before { + content: "\e945"; +} +.ico--cross:before { + content: "\e937"; +} +.ico--checkbox-checked:before { + content: "\e938"; +} +.ico--globe:before { + content: "\e93a"; +} +.ico--wikipedia:before { + content: "\e93b"; +} +.ico--youtube:before { + content: "\e936"; +} +.ico--users:before { + content: "\e934"; +} +.ico--book:before { + content: "\e935"; +} +.ico--bubbles:before { + content: "\e930"; +} +.ico--map:before { + content: "\e914"; +} +.ico--compass:before { + content: "\e915"; +} +.ico--folder-open:before { + content: "\e916"; +} +.ico--folder:before { + content: "\e917"; +} +.ico--drawer:before { + content: "\e918"; +} +.ico--stop:before { + content: "\e919"; +} +.ico--github:before { + content: "\e91a"; +} +.ico--clock:before { + content: "\e91b"; +} +.ico--calendar:before { + content: "\e91c"; +} +.ico--flickr:before { + content: "\e91d"; +} +.ico--instagram:before { + content: "\e91e"; +} +.ico--twitter:before { + content: "\e91f"; +} +.ico--newspaper:before { + content: "\e920"; +} +.ico--cart:before { + content: "\e921"; +} +.ico--home:before { + content: "\e922"; +} +.ico--link:before { + content: "\e912"; +} +.ico--power:before { + content: "\e90c"; +} +.ico--rocket:before { + content: "\e946"; +} +.ico--location:before { + content: "\e906"; +} +.ico--phone:before { + content: "\e907"; +} +.ico--linkedin:before { + content: "\e903"; +} +.ico--facebook:before { + content: "\e902"; +} +.ico--envelop:before { + content: "\e972"; +} +.ico--bed:before { + content: "\e969"; +} +.ico--train:before { + content: "\e96a"; +} +.ico--bus:before { + content: "\e96b"; +} +.ico--wheelchair:before { + content: "\e966"; +} +.ico--thumbs-down:before { + content: "\e93d"; +} +.ico--thumbs-up:before { + content: "\e93e"; +} +.ico--anchor:before { + content: "\e92d"; +} +.ico--paw:before { + content: "\e90b"; +} diff --git a/home/static/fonts/source-serif/source-serif-4-v7-latin_latin-ext-700.woff2 b/home/static/home/fonts/source-serif/source-serif-4-v7-latin_latin-ext-700.woff2 similarity index 100% rename from home/static/fonts/source-serif/source-serif-4-v7-latin_latin-ext-700.woff2 rename to home/static/home/fonts/source-serif/source-serif-4-v7-latin_latin-ext-700.woff2 diff --git a/home/static/fonts/source-serif/source-serif-4-v7-latin_latin-ext-700italic.woff2 b/home/static/home/fonts/source-serif/source-serif-4-v7-latin_latin-ext-700italic.woff2 similarity index 100% rename from home/static/fonts/source-serif/source-serif-4-v7-latin_latin-ext-700italic.woff2 rename to home/static/home/fonts/source-serif/source-serif-4-v7-latin_latin-ext-700italic.woff2 diff --git a/home/static/fonts/source-serif/source-serif-4-v7-latin_latin-ext-italic.woff2 b/home/static/home/fonts/source-serif/source-serif-4-v7-latin_latin-ext-italic.woff2 similarity index 100% rename from home/static/fonts/source-serif/source-serif-4-v7-latin_latin-ext-italic.woff2 rename to home/static/home/fonts/source-serif/source-serif-4-v7-latin_latin-ext-italic.woff2 diff --git a/home/static/fonts/source-serif/source-serif-4-v7-latin_latin-ext-regular.woff2 b/home/static/home/fonts/source-serif/source-serif-4-v7-latin_latin-ext-regular.woff2 similarity index 100% rename from home/static/fonts/source-serif/source-serif-4-v7-latin_latin-ext-regular.woff2 rename to home/static/home/fonts/source-serif/source-serif-4-v7-latin_latin-ext-regular.woff2 diff --git a/home/static/fonts/source-serif/style.css b/home/static/home/fonts/source-serif/style.css similarity index 100% rename from home/static/fonts/source-serif/style.css rename to home/static/home/fonts/source-serif/style.css diff --git a/home/static/home/images/cc-by-sa.png b/home/static/home/images/cc-by-sa.png new file mode 100644 index 0000000000000000000000000000000000000000..8770732928cb20d8aeafee32bec9c5de89d51238 GIT binary patch literal 17594 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 B%d!9f literal 0 HcmV?d00001 diff --git a/institut/static/images/logo.png b/home/static/home/images/logo.png similarity index 100% rename from institut/static/images/logo.png rename to home/static/home/images/logo.png diff --git a/institut/static/images/logo_big.png b/home/static/home/images/logo_big.png similarity index 100% rename from institut/static/images/logo_big.png rename to home/static/home/images/logo_big.png diff --git a/home/templates/home/blocks/person_page_block.html b/home/templates/home/blocks/person_page_block.html index 903facb..e547d01 100644 --- a/home/templates/home/blocks/person_page_block.html +++ b/home/templates/home/blocks/person_page_block.html @@ -3,9 +3,9 @@ <div class="flex gap-2"> <a href="{{ page.url }}"> {% if page.position %} - <strong>{{ page.title }}</strong> + <strong>{{ page.full_name }}</strong> {% else %} - {{ page.title }} + {{ page.full_name }} {% endif %} </a> diff --git a/home/templates/home/home_article_page.html b/home/templates/home/home_article_page.html index 4f0b5b7..b909afe 100644 --- a/home/templates/home/home_article_page.html +++ b/home/templates/home/home_article_page.html @@ -1,11 +1,17 @@ {% extends "base.html" %} -{% load static wagtailcore_tags %} +{% load static wagtailcore_tags wagtailimages_tags %} {% block content %} <main class="flex flex-col items-center gap-10 pt-14"> <div class="container"> <h1 class="font-bebas text-4xl">{{ page.title }}</h1> + <small class="text-pii-cyan uppercase font-bold"> + {% for tag in page.tags.all %} + <a href="/clanky?tag={{ tag.name }}">{{ tag.name }}</a> + {% endfor %} + </small> + <div class="flex flex-col gap-1 mt-3 text-gray-700"> <div class="flex gap-2 items-center"> <i class="ico--calendar"></i> @@ -29,6 +35,11 @@ </div> <div class="mt-5 prose max-w-screen-md font-serif"> + {% if page.image %} + {% image page.image original as article_image %} + <img src="{{ article_image.url }}"> + {% endif %} + <p class="mb-3">{{ page.perex }}</p> {{ page.content|richtext }} diff --git a/home/templates/home/home_articles_page.html b/home/templates/home/home_articles_page.html index 7e0af81..41d4460 100644 --- a/home/templates/home/home_articles_page.html +++ b/home/templates/home/home_articles_page.html @@ -1,11 +1,22 @@ {% extends "base.html" %} -{% load static wagtailcore_tags %} +{% load static wagtailcore_tags wagtailimages_tags %} {% block content %} <main class="flex flex-col items-center gap-10 pt-14"> <div class="container"> <h1 class="font-bebas text-4xl mb-4">{{ page.title }}</h1> + {% if filtered_tag %} + <div class="text-gray-500 mb-5"> + <span>Filtrovaný štítek: <strong>{{ filtered_tag }}</strong></span> + <br> + <a href="/clanky"> + <i class="ico--chevron-left"></i> + <span class="underline">Zpět na seznam</span> + </a> + </div> + {% endif %} + {% if page.content %} <div class="prose font-serif mb-3"> {{ page.content|richtext }} @@ -13,26 +24,36 @@ {% endif %} <ul class="flex gap-4 flex-wrap"> - {% for article in page.articles %} - <li class="bg-pii-cyan lg:h-96 text-white p-7 lg:w-80"> - <a - class="flex flex-col gap-2 h-full" - href="{{ article.url }}" - > - <small class="text-pii-cyan uppercase font-bold"> - {% for tag in article.tags.all %} - {{ tag.name }} - {% endfor %} - </small> - <h3 class="font-serif text-xl leading-6 font-bold">{{ article.title }}</h3> + {% for article in articles %} + <li class="bg-pii-cyan lg:h-96 text-white w-full lg:w-80 drop-shadow-lg"> + <a href="{{ article.url }}"> + {% if article.image and article.show_image_on_homepage %} + {% image article.image max-400x400 as article_image %} + <img + class="w-full bg-white max-h-48 object-cover" + src="{{ article_image.url }}" + alt="Náhledový obrázek článku" + > + {% endif %} + + <div class="p-7 flex flex-col gap-2 h-full"> + <small class="text-white uppercase font-bold"> + {% for tag in article.tags.all %} + {{ tag.name }} + {% endfor %} + </small> + <h3 class="font-serif text-xl leading-6 font-bold">{{ article.title }}</h3> - <p class="font-serif leading-5 grow"> - {{ article.shortened_perex }} - </p> + {% if not article.image or not article.show_image_on_homepage %} + <p class="font-serif leading-5 grow"> + {{ article.shortened_perex }} + </p> + {% endif %} - <small class="font-serif"> - Přidáno {{ article.date }} - </small> + <small class="font-serif"> + Přidáno {{ article.date }} + </small> + </div> </a> </li> {% endfor %} diff --git a/home/templates/home/home_document_page.html b/home/templates/home/home_document_page.html index 54e9ead..7b9db1a 100644 --- a/home/templates/home/home_document_page.html +++ b/home/templates/home/home_document_page.html @@ -6,20 +6,29 @@ <div class="container"> <h1 class="font-bebas text-4xl">{{ page.title }}</h1> - {% if page.author_page %} - <a - class="flex gap-2 items-center" - href="{{ page.author_page.url }}" - > - <i class="ico--user"></i> - <div>{{ page.author_page.title }}</div> - </a> - {% elif page.author %} - <div class="flex gap-2 items-center"> - <i class="ico--user"></i> - <div>{{ page.author }}</div> - </div> - {% endif %} + <div class="flex flex-col gap-1 mt-3 text-gray-700"> + {% if page.date %} + <div class="flex gap-2 items-center"> + <i class="ico--calendar"></i> + <div>{{ page.date }}</div> + </div> + {% endif %} + + {% if page.author_page %} + <a + class="flex gap-2 items-center" + href="{{ page.author_page.url }}" + > + <i class="ico--user"></i> + <div>{{ page.author_page.title }}</div> + </a> + {% elif page.author %} + <div class="flex gap-2 items-center"> + <i class="ico--user"></i> + <div>{{ page.author }}</div> + </div> + {% endif %} + </div> <div class="mt-5 prose max-w-screen-md font-serif"> {{ page.content|richtext }} diff --git a/home/templates/home/home_page.html b/home/templates/home/home_page.html index e08b525..8045a87 100644 --- a/home/templates/home/home_page.html +++ b/home/templates/home/home_page.html @@ -1,12 +1,12 @@ {% extends "base.html" %} -{% load static wagtailcore_tags %} +{% load static wagtailcore_tags wagtailimages_tags %} {% block content %} <main class="flex flex-col items-center gap-10 pt-14"> <div class="container flex gap-10"> <figure class="w-32 flex-col gap-2 hidden lg:flex"> <img - src="{% static 'images/logo_big.png' %}" + src="{% static 'home/images/logo_big.png' %}" alt="Logo" > <figcaption class="font-sans leading-4"> @@ -26,25 +26,35 @@ <ul class="flex gap-4 lg:h-96 lg:flex-nowrap flex-wrap"> {% for article in page.latest_articles %} - <li class="bg-white p-7 lg:w-80"> - <a - class="flex flex-col gap-2 h-full" - href="{{ article.url }}" - > - <small class="text-pii-cyan uppercase font-bold"> - {% for tag in article.tags.all %} - {{ tag.name }} - {% endfor %} - </small> - <h3 class="font-serif text-xl leading-6 font-bold">{{ article.title }}</h3> - - <p class="font-serif leading-5 grow"> - {{ article.shortened_perex }} - </p> - - <small class="font-serif"> - Přidáno {{ article.date }} - </small> + <li class="bg-white lg:w-80"> + <a href="{{ article.url }}"> + {% if article.image and article.show_image_on_homepage %} + {% image article.image max-400x400 as article_image %} + <img + class="w-full max-h-48 object-cover" + src="{{ article_image.url }}" + alt="Náhledový obrázek článku" + > + {% endif %} + + <div class="p-7 flex flex-col gap-2 h-full"> + <small class="text-pii-cyan uppercase font-bold"> + {% for tag in article.tags.all %} + {{ tag.name }} + {% endfor %} + </small> + <h3 class="font-serif text-xl leading-6 font-bold">{{ article.title }}</h3> + + {% if not article.image or not article.show_image_on_homepage %} + <p class="font-serif leading-5 grow"> + {{ article.shortened_perex }} + </p> + {% endif %} + + <small class="font-serif"> + Přidáno {{ article.date }} + </small> + </div> </a> </li> {% endfor %} diff --git a/home/templates/home/home_people_page.html b/home/templates/home/home_people_page.html index 6bc7bfd..8a0a837 100644 --- a/home/templates/home/home_people_page.html +++ b/home/templates/home/home_people_page.html @@ -18,9 +18,7 @@ <a class="underline" href="{{ person.url }}" - > - {{ person.title }} - </a> + >{{ person.full_name }}</a>{% if person.position %}<span class="text-gray-500">, {{ person.inline_position }}{% endif %} </li> {% endfor %} </ul> diff --git a/home/templates/home/home_person_page.html b/home/templates/home/home_person_page.html index 7421d61..4b6ce46 100644 --- a/home/templates/home/home_person_page.html +++ b/home/templates/home/home_person_page.html @@ -11,11 +11,11 @@ <img class="rounded-full w-40 h-40" src="{{ profile_image.url }}" - alt="Profilový obrázek osoby {{ page.title }}" + alt="Profilový obrázek osoby {{ page.full_name }}" > {% endif %} <div class="flex flex-col"> - <h1 class="font-bebas text-4xl">{{ page.title }}</h1> + <h1 class="font-bebas text-4xl">{{ page.full_name }}</h1> {% if page.position %} <div class="text-gray-500 whitespace-pre-line font-serif">{{ page.position }}</div> diff --git a/home/templates/home/home_video_page.html b/home/templates/home/home_video_page.html new file mode 100644 index 0000000..c498bf8 --- /dev/null +++ b/home/templates/home/home_video_page.html @@ -0,0 +1,50 @@ +{% extends "base.html" %} +{% load static wagtailcore_tags %} + +{% block content %} +<main class="flex flex-col items-center gap-10 pt-14"> + <div class="container"> + <h1 class="font-bebas text-4xl">{{ page.title }}</h1> + + <div class="flex flex-col gap-1 mt-3 text-gray-700"> + {% if page.date %} + <div class="flex gap-2 items-center"> + <i class="ico--calendar"></i> + <div>{{ page.date }}</div> + </div> + {% endif %} + + {% if page.author_page %} + <a + class="flex gap-2 items-center" + href="{{ page.author_page.url }}" + > + <i class="ico--user"></i> + <div>{{ page.author_page.title }}</div> + </a> + {% elif page.author %} + <div class="flex gap-2 items-center"> + <i class="ico--user"></i> + <div>{{ page.author }}</div> + </div> + {% endif %} + </div> + + {% if page.content %} + <div class="mt-5 prose max-w-screen-md font-serif"> + {{ page.content|richtext }} + </div> + {% endif %} + + <div class="mt-5 lg:mt-7 flex justify-center"> + <iframe + class="lg:w-[850px] lg:h-[478px] md:w-[600px] md:h-[366px] w-full h-[200px]" + src="{{ page.embed_url }}" + frameborder="0" + allowfullscreen="" + sandbox="allow-same-origin allow-scripts allow-popups" + ></iframe> + </div> + </div> +</main> +{% endblock content %} diff --git a/home/templates/home/home_videos_page.html b/home/templates/home/home_videos_page.html new file mode 100644 index 0000000..183d02f --- /dev/null +++ b/home/templates/home/home_videos_page.html @@ -0,0 +1,42 @@ +{% extends "base.html" %} +{% load static wagtailcore_tags wagtailimages_tags %} + +{% block content %} +<main class="flex flex-col items-center gap-10 pt-14"> + <div class="container"> + <h1 class="font-bebas text-4xl mb-4">{{ page.title }}</h1> + + {% if page.content %} + <div class="prose font-serif mb-5"> + {{ page.content|richtext }} + </div> + {% endif %} + + <ul class="flex flex-col gap-5 font-serif"> + {% for video in page.videos %} + <a href="{{ video.url }}"> + <li class=" + flex gap-6 md:flex-row flex-col + {% if not forloop.last %} + border-b border-gray-100 pb-5 + {% endif %} + "> + <div class="drop-shadow-lg bg-white"> + {% image video.thumbnail max-500x500 as thumbnail_image %} + <img + class="md:h-40 md:w-64 w-full max-h-48 object-cover" + src="{{ thumbnail_image.url }}" + alt="Náhledový obrázek videa" + > + </div> + <div class="flex flex-col"> + <h2 class="text-lg font-bold">{{ video.title }}</h2> + <span class="text-gray-500">{{ video.date }}</span> + </div> + </li> + </a> + {% endfor %} + </ul> + </div> +</main> +{% endblock content %} diff --git a/institut/settings/base.py b/institut/settings/base.py index ae65da8..7330ad8 100644 --- a/institut/settings/base.py +++ b/institut/settings/base.py @@ -39,6 +39,7 @@ INSTALLED_APPS = [ "wagtail.contrib.forms", "wagtail.contrib.redirects", "wagtail.contrib.routable_page", + "wagtail.contrib.settings", "wagtail.embeds", "wagtail.sites", "wagtail.users", @@ -84,6 +85,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", ], }, }, diff --git a/institut/static/fonts/pirati-ui/style.css b/institut/static/fonts/pirati-ui/style.css deleted file mode 100644 index 9f6005c..0000000 --- a/institut/static/fonts/pirati-ui/style.css +++ /dev/null @@ -1,129 +0,0 @@ -@font-face { - font-family: "pirati-ui"; - src: - url("./pirati-ui.eot") format("embedded-opentype"), - url("./pirati-ui.ttf") format("truetype"), - url("./pirati-ui.woff") format("woff"), - url("./pirati-ui.svg") format("svg"); - font-weight: normal; - font-style: normal; - font-display: block; -} - -[class^="ico--"], [class*=" ico--"] { - /* Use !important to prevent issues with browser extensions that change fonts */ - font-family: "pirati-ui" !important; - speak: never; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - - /* Better Font Rendering */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.ico--dots-three-vertical:before { content: "\e940"; } -.ico--dots-three-horizontal:before { content: "\e941"; } -.ico--log-out:before { content: "\e942"; } -.ico--envelope:before { content: "\e908"; } -.ico--pin:before { content: "\e943"; } -.ico--at:before { content: "\e905"; } -.ico--strategy:before { content: "\e932"; } -.ico--pig:before { content: "\e928"; } -.ico--thermometer:before { content: "\e90a"; } -.ico--menu:before { content: "\e933"; } -.ico--chevron-right:before { content: "\e923"; } -.ico--chevron-left:before { content: "\e924"; } -.ico--chevron-down:before { content: "\e925"; } -.ico--chevron-up:before { content: "\e926"; } -.ico--link-horizontal:before { content: "\e910"; } -.ico--beer:before { content: "\e909"; } -.ico--pirati:before { content: "\e90d"; } -.ico--jitsi:before { content: "\e90f"; } -.ico--open-source:before { content: "\e90e"; } -.ico--thumbs-down:before { content: "\e93d"; } -.ico--thumbs-up:before { content: "\e93e"; } -.ico--anchor:before { content: "\e92d"; } -.ico--paw:before { content: "\e90b"; } -.ico--checkmark:before { content: "\e965"; } -.ico--info:before { content: "\e901"; } -.ico--question:before { content: "\e904"; } -.ico--warning:before { content: "\e93f"; } -.ico--code:before { content: "\e94a"; } -.ico--checkbox-unchecked:before { content: "\e94e"; } -.ico--star-full:before { content: "\e94f"; } -.ico--star-empty:before { content: "\e950"; } -.ico--bookmark:before { content: "\e951"; } -.ico--cog:before { content: "\e952"; } -.ico--key:before { content: "\e953"; } -.ico--zoom-in:before { content: "\e954"; } -.ico--zoom-out:before { content: "\e955"; } -.ico--shrink:before { content: "\e956"; } -.ico--printer:before { content: "\e957"; } -.ico--file-openoffice:before { content: "\e958"; } -.ico--user:before { content: "\e959"; } -.ico--file-excel:before { content: "\e95a"; } -.ico--file-word:before { content: "\e95b"; } -.ico--file-pdf:before { content: "\e95c"; } -.ico--file-picture:before { content: "\e95d"; } -.ico--file-blank:before { content: "\e95e"; } -.ico--folder-upload:before { content: "\e95f"; } -.ico--upload:before { content: "\e960"; } -.ico--cloud-upload:before { content: "\e961"; } -.ico--folder-download:before { content: "\e962"; } -.ico--download:before { content: "\e963"; } -.ico--cloud-download:before { content: "\e964"; } -.ico--alarm:before { content: "\e900"; } -.ico--calculator:before { content: "\e911"; } -.ico--facebook-full:before { content: "\e913"; } -.ico--feed:before { content: "\e927"; } -.ico--library:before { content: "\e929"; } -.ico--office:before { content: "\e92a"; } -.ico--attachment:before { content: "\e92b"; } -.ico--enlarge:before { content: "\e92c"; } -.ico--eye-off:before { content: "\e92e"; } -.ico--eye:before { content: "\e92f"; } -.ico--share:before { content: "\e931"; } -.ico--search:before { content: "\e939"; } -.ico--pencil:before { content: "\e93c"; } -.ico--lock-open:before { content: "\e947"; } -.ico--lock:before { content: "\e948"; } -.ico--equalizer:before { content: "\e949"; } -.ico--switch:before { content: "\e94b"; } -.ico--loop:before { content: "\e94c"; } -.ico--refresh:before { content: "\e94d"; } -.ico--bullhorn:before { content: "\e944"; } -.ico--bin:before { content: "\e945"; } -.ico--cross:before { content: "\e937"; } -.ico--checkbox-checked:before { content: "\e938"; } -.ico--globe:before { content: "\e93a"; } -.ico--wikipedia:before { content: "\e93b"; } -.ico--youtube:before { content: "\e936"; } -.ico--users:before { content: "\e934"; } -.ico--book:before { content: "\e935"; } -.ico--bubbles:before { content: "\e930"; } -.ico--map:before { content: "\e914"; } -.ico--compass:before { content: "\e915"; } -.ico--folder-open:before { content: "\e916"; } -.ico--folder:before { content: "\e917"; } -.ico--drawer:before { content: "\e918"; } -.ico--stop:before { content: "\e919"; } -.ico--github:before { content: "\e91a"; } -.ico--clock:before { content: "\e91b"; } -.ico--calendar:before { content: "\e91c"; } -.ico--flickr:before { content: "\e91d"; } -.ico--instagram:before { content: "\e91e"; } -.ico--twitter:before { content: "\e91f"; } -.ico--newspaper:before { content: "\e920"; } -.ico--cart:before { content: "\e921"; } -.ico--home:before { content: "\e922"; } -.ico--link:before { content: "\e912"; } -.ico--power:before { content: "\e90c"; } -.ico--rocket:before { content: "\e946"; } -.ico--location:before { content: "\e906"; } -.ico--phone:before { content: "\e907"; } -.ico--linkedin:before { content: "\e903"; } -.ico--facebook:before { content: "\e902"; } diff --git a/institut/templates/404.html b/institut/templates/404.html index f19ab95..2a639b8 100644 --- a/institut/templates/404.html +++ b/institut/templates/404.html @@ -1,11 +1,14 @@ {% extends "base.html" %} - -{% block title %}Page not found{% endblock %} - -{% block body_class %}template-404{% endblock %} +{% load static wagtailcore_tags %} {% block content %} -<h1>Page not found</h1> - -<h2>Sorry, this page could not be found.</h2> -{% endblock %} +<main class="flex flex-col items-center gap-10 pt-14"> + <div class="container"> + <h1 class="font-bebas text-4xl">Stránka nenalezena</h1> + + <p class="prose"> + Stránka byla smazána, nebo se nacházela na staré verzi webu. + Nové články můžeš nalézt <a href="/clanky">zde</a>. + </p> + </div> +</main> diff --git a/institut/templates/500.html b/institut/templates/500.html index 77379e5..f80f0f8 100644 --- a/institut/templates/500.html +++ b/institut/templates/500.html @@ -1,13 +1,13 @@ -<!DOCTYPE html> -<html lang="en" dir="ltr"> - <head> - <meta charset="utf-8" /> - <title>Internal server error</title> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - </head> - <body> - <h1>Internal server error</h1> +{% extends "base.html" %} +{% load static wagtailcore_tags %} - <h2>Sorry, there seems to be an error. Please try again soon.</h2> - </body> -</html> +{% block content %} +<main class="flex flex-col items-center gap-10 pt-14"> + <div class="container"> + <h1 class="font-bebas text-4xl">Chyba serveru</h1> + + <p class="prose"> + Nastala chyba z naší strany. Pokud přetrvá, kontaktuj prosím správce webu. + </p> + </div> +</main> diff --git a/institut/templates/base.html b/institut/templates/base.html index d9d96a7..5983fd8 100644 --- a/institut/templates/base.html +++ b/institut/templates/base.html @@ -25,17 +25,17 @@ {# Global stylesheets #} <link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}"> - <link rel="stylesheet" type="text/css" href="{% static 'fonts/pirati-ui/style.css' %}"> + <link rel="stylesheet" type="text/css" href="{% static 'home/fonts/pirati-ui/style.css' %}?v=2"> <link rel="stylesheet" - href="{% static 'fonts/bebas-neue/style.css' %}" + href="{% static 'home/fonts/bebas-neue/style.css' %}" > <link rel="stylesheet" - href="{% static 'fonts/source-serif/style.css' %}" + href="{% static 'home/fonts/source-serif/style.css' %}" > - <link rel="icon" type="image/png" href="{% static 'images/logo_big.png' %}"> + <link rel="icon" type="image/png" href="{% static 'home/images/logo_big.png' %}"> {% block extra_css %} {# Override this in templates to add extra stylesheets #} @@ -46,28 +46,36 @@ {% wagtailuserbar %} <nav class="sticky top-0 drop-shadow-lg bg-grey-800 py-8 flex justify-center"> - <div class="flex gap-7 container text-white items-center"> - <a - href="/" - > - <img - class="h-9" - src="{% static 'images/logo.png' %}" - alt="Logo" + <div class="flex justify-between container"> + <div class="flex gap-7 text-white items-center"> + <a + href="/" > - </a> + <img + class="h-9" + src="{% static 'home/images/logo.png' %}" + alt="Logo" + > + </a> - <div - class="w-px h-6 bg-white hidden md:block" - ></div> + <div + class="w-px h-6 bg-white hidden md:block" + ></div> - <div class="gap-4 hidden md:flex"> - <a class="nav__item" href="/clanky">Články</a> - <a class="nav__item" href="/akce">Akce</a> - <a class="nav__item" href="/dokumenty">Dokumenty</a> - <a class="nav__item" href="/#dary">Dary</a> - <a class="nav__item" href="/#kontakty">Kontakty</a> - <a class="nav__item" href="/#lide">Lidé</a> + <div class="gap-4 hidden md:flex"> + <a class="nav__item" href="/clanky">Články</a> + <a class="nav__item" href="/akce">Akce</a> + <a class="nav__item" href="/dokumenty">Dokumenty</a> + <a class="nav__item" href="/lide">Lidé</a> + <a class="nav__item" href="/videa">Videa</a> + <a class="nav__item" href="/#dary">Dary</a> + </div> + </div> + + <div class="md:hidden block"> + <a href="#mobile-menu" class="text-white text-4xl"> + <i class="ico--menu" aria-label="Otevřít menu"></i> + </a> </div> </div> </nav> @@ -78,13 +86,77 @@ <div class="flex justify-center bg-gray-100"> <footer class="container text-gray-500 py-8"> - <a href="/feeds/atom" class="flex gap-2 items-center max-w-max"> - <i class="ico--feed"></i> - <span>RSS</span> - </a> + <div class="flex gap-2 justify-between items-start w-full"> + <div class="flex flex-col gap-3"> + <a href="https://creativecommons.org/licenses/by-sa/4.0/"> + <img + class="h-8 opacity-75" + src="{% static 'home/images/cc-by-sa.png' %}" + alt="Licence CC BY-SA 4.0" + > + </a> + <a href="/#kontakty" class="flex gap-2 items-center max-w-max"> + <i class="ico--envelope"></i> + <span>Kontakty</span> + </a> + </div> + + <div class="flex flex-col"> + {% if settings.home.SocialMediaSettings.mastodon %} + <a href="{{ settings.home.SocialMediaSettings.mastodon }}" class="flex gap-2 items-center h-8"> + <span class="w-6 text-2xl"><i class="ico--mastodon ml-[-0.25rem]"></i></span> + <span>Mastodon</span> + </a> + {% endif %} + {% if settings.home.SocialMediaSettings.twitter %} + <a href="{{ settings.home.SocialMediaSettings.twitter }}" class="flex gap-2 items-center h-8"> + <span class="w-6 text-xl font-bold">𝕏<!-- Fuck you, Twitter --></span> + <span>Twitter</span> + </a> + {% endif %} + {% if settings.home.SocialMediaSettings.linkedin %} + <a href="{{ settings.home.SocialMediaSettings.linkedin }}" class="flex gap-2 items-center h-8"> + <span class="w-6 text-xl font-bold"><i class="ico--linkedin"></i></span> + <span>LinkedIn</span> + </a> + {% endif %} + {% if settings.home.SocialMediaSettings.facebook %} + <a href="{{ settings.home.SocialMediaSettings.facebook }}" class="flex gap-2 items-center h-8"> + <span class="w-6 text-xl font-bold"><i class="ico--facebook"></i></span> + <span>Facebook</span> + </a> + {% endif %} + <a href="/feeds/atom" class="flex gap-2 items-center max-w-max h-8"> + <span class="w-6"><i class="ico--feed"></i></span> + <span>RSS</span> + </a> + </div> + </div> </footer> </div> + <div class="fixed top-0 left-0 p-3 w-full h-full bg-grey-800 z-50 hidden overflow-y-auto target:block text-white" id="mobile-menu"> + <div class="flex flex-col p-3 gap-4"> + <a + role="button" + href="#" + aria-label="Zavřít menu" + title="Zavřít menu" + > + <i class="ico--chevron-left text-white text-2xl"></i> + </a> + + <div class="flex flex-col gap-1 text-2xl"> + <a class="nav__item" href="/clanky">Články</a> + <a class="nav__item" href="/akce">Akce</a> + <a class="nav__item" href="/dokumenty">Dokumenty</a> + <a class="nav__item" href="/lide">Lidé</a> + <a class="nav__item" href="/videa">Videa</a> + <a class="nav__item" href="/#dary">Dary</a> + </div> + </div> + </div> + {% block extra_js %}{% endblock %} </body> </html> diff --git a/requirements/base.txt b/requirements/base.txt index db6cbf1..7a996fc 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -2,3 +2,5 @@ dj-database-url==2.0.0 django-environ==0.9.0 psycopg2-binary==2.9.6 wagtail==5.0.2 +django-taggit==4.0.0 +django-modelcluster==6.0 -- GitLab