Skip to content
Snippets Groups Projects
Commit dcfa174d authored by Tomáš Valenta's avatar Tomáš Valenta
Browse files

personal pages, minor UI improvements, sticky navbar

parent 3d6c52bc
No related branches found
No related tags found
No related merge requests found
Showing
with 589 additions and 34 deletions
# Generated by Django 4.2.4 on 2023-08-12 19:00
from django.db import migrations, models
import django.db.models.deletion
import wagtail.contrib.routable_page.models
import wagtail.fields
class Migration(migrations.Migration):
dependencies = [
('wagtailcore', '0083_workflowcontenttype'),
('wagtailimages', '0025_alter_image_file_alter_rendition_file'),
('home', '0015_alter_homepage_options'),
]
operations = [
migrations.CreateModel(
name='HomePeoplePage',
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 uživatelů',
},
bases=(wagtail.contrib.routable_page.models.RoutablePageMixin, 'wagtailcore.page'),
),
migrations.CreateModel(
name='HomePersonPage',
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')),
('name', models.CharField(max_length=64, verbose_name='Jméno')),
('position', models.TextField(blank=True, null=True, verbose_name='Pracovní pozice')),
('email', models.EmailField(blank=True, max_length=254, null=True, verbose_name='Emailová adresa')),
('description', wagtail.fields.RichTextField(blank=True, null=True, verbose_name='Popis')),
('image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image', verbose_name='Profilový obrázek')),
],
options={
'abstract': False,
},
bases=(wagtail.contrib.routable_page.models.RoutablePageMixin, 'wagtailcore.page'),
),
]
# Generated by Django 4.2.4 on 2023-08-12 19:01
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('home', '0016_homepeoplepage_homepersonpage'),
]
operations = [
migrations.AlterModelOptions(
name='homepeoplepage',
options={'verbose_name': 'Rozcestník osob'},
),
migrations.AlterModelOptions(
name='homepersonpage',
options={'verbose_name': 'Osoba'},
),
]
# Generated by Django 4.2.4 on 2023-08-12 19:01
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('home', '0017_alter_homepeoplepage_options_and_more'),
]
operations = [
migrations.RemoveField(
model_name='homepersonpage',
name='name',
),
]
# Generated by Django 4.2.4 on 2023-08-12 19:21
from django.db import migrations
import wagtail.blocks
import wagtail.fields
class Migration(migrations.Migration):
dependencies = [
('home', '0018_remove_homepersonpage_name'),
]
operations = [
migrations.AlterField(
model_name='homepage',
name='controller',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Kontrolor'),
),
migrations.AlterField(
model_name='homepage',
name='council_members',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Správní rada'),
),
migrations.AlterField(
model_name='homepage',
name='director',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Ředitel'),
),
migrations.AlterField(
model_name='homepage',
name='employees',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Zaměstnanci'),
),
migrations.AlterField(
model_name='homepage',
name='volunteers',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Dobrovolníci'),
),
]
# Generated by Django 4.2.4 on 2023-08-12 19:27
from django.db import migrations, models
import django.db.models.deletion
import wagtail.blocks
import wagtail.fields
class Migration(migrations.Migration):
dependencies = [
('home', '0019_alter_homepage_controller_and_more'),
]
operations = [
migrations.AddField(
model_name='homearticlepage',
name='author_page',
field=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'),
),
migrations.AddField(
model_name='homedocumentpage',
name='author_page',
field=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'),
),
migrations.AddField(
model_name='homeeventpage',
name='author_page',
field=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'),
),
migrations.AlterField(
model_name='homearticlepage',
name='author',
field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Jméno autora'),
),
migrations.AlterField(
model_name='homedocumentpage',
name='author',
field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Jméno autora'),
),
migrations.AlterField(
model_name='homeeventpage',
name='author',
field=models.CharField(blank=True, max_length=128, null=True, verbose_name='Jméno autora'),
),
migrations.AlterField(
model_name='homepage',
name='controller',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Kontrolor'),
),
migrations.AlterField(
model_name='homepage',
name='council_members',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Správní rada'),
),
migrations.AlterField(
model_name='homepage',
name='director',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Ředitel'),
),
migrations.AlterField(
model_name='homepage',
name='employees',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Zaměstnanci'),
),
migrations.AlterField(
model_name='homepage',
name='volunteers',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Dobrovolníci'),
),
]
# Generated by Django 4.2.4 on 2023-08-12 19:39
from django.db import migrations
import wagtail.blocks
import wagtail.fields
class Migration(migrations.Migration):
dependencies = [
('home', '0020_homearticlepage_author_page_and_more'),
]
operations = [
migrations.AlterField(
model_name='homepage',
name='controller',
field=wagtail.fields.StreamField([('person', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Kontrolor'),
),
migrations.AlterField(
model_name='homepage',
name='council_members',
field=wagtail.fields.StreamField([('person', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Správní rada'),
),
migrations.AlterField(
model_name='homepage',
name='director',
field=wagtail.fields.StreamField([('person', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Ředitel'),
),
migrations.AlterField(
model_name='homepage',
name='employees',
field=wagtail.fields.StreamField([('person', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Zaměstnanci'),
),
migrations.AlterField(
model_name='homepage',
name='volunteers',
field=wagtail.fields.StreamField([('person', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Dobrovolníci'),
),
]
# Generated by Django 4.2.4 on 2023-08-12 19:49
from django.db import migrations
import wagtail.blocks
import wagtail.fields
class Migration(migrations.Migration):
dependencies = [
('home', '0021_alter_homepage_controller_and_more'),
]
operations = [
migrations.AlterField(
model_name='homepage',
name='controller',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Kontrolor'),
),
migrations.AlterField(
model_name='homepage',
name='council_members',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Správní rada'),
),
migrations.AlterField(
model_name='homepage',
name='director',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Ředitel'),
),
migrations.AlterField(
model_name='homepage',
name='employees',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Zaměstnanci'),
),
migrations.AlterField(
model_name='homepage',
name='volunteers',
field=wagtail.fields.StreamField([('person', wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Jméno')), ('position', wagtail.blocks.TextBlock(label='Pracovní pozice', required=False)), ('email', wagtail.blocks.EmailBlock(label='E-mailová adresa', required=False))])), ('person_page', wagtail.blocks.PageChooserBlock(icon='user', label='Stránka osoby', page_type=['home.HomePersonPage']))], blank=True, null=True, use_json_field=True, verbose_name='Dobrovolníci'),
),
]
from django.db import models
from django.utils import timezone
from wagtail.admin.panels import FieldPanel, MultiFieldPanel, TabbedInterface, ObjectList
from wagtail.blocks import PageChooserBlock
from wagtail.contrib.routable_page.models import RoutablePageMixin, path
from wagtail.documents import get_document_model
from wagtail.fields import RichTextField, StreamField
......@@ -26,7 +27,16 @@ class HomePage(RoutablePageMixin, Page):
# --- People ---
director = StreamField(
[("person", PersonBlock())],
[
(
"person",
PersonBlock()
),
(
"person_page",
PageChooserBlock(page_type="home.HomePersonPage", label="Stránka osoby", icon="user")
)
],
verbose_name="Ředitel",
use_json_field=True,
blank=True,
......@@ -41,7 +51,16 @@ class HomePage(RoutablePageMixin, Page):
)
controller = StreamField(
[("person", PersonBlock())],
[
(
"person",
PersonBlock()
),
(
"person_page",
PageChooserBlock(page_type="home.HomePersonPage", label="Stránka osoby", icon="user")
)
],
verbose_name="Kontrolor",
use_json_field=True,
blank=True,
......@@ -52,7 +71,16 @@ class HomePage(RoutablePageMixin, Page):
)
council_members = StreamField(
[("person", PersonBlock())],
[
(
"person",
PersonBlock()
),
(
"person_page",
PageChooserBlock(page_type="home.HomePersonPage", label="Stránka osoby", icon="user")
)
],
verbose_name="Správní rada",
use_json_field=True,
blank=True,
......@@ -63,7 +91,16 @@ class HomePage(RoutablePageMixin, Page):
)
volunteers = StreamField(
[("person", PersonBlock())],
[
(
"person",
PersonBlock()
),
(
"person_page",
PageChooserBlock(page_type="home.HomePersonPage", label="Stránka osoby", icon="user")
)
],
verbose_name="Dobrovolníci",
use_json_field=True,
blank=True,
......@@ -74,7 +111,16 @@ class HomePage(RoutablePageMixin, Page):
)
employees = StreamField(
[("person", PersonBlock())],
[
(
"person",
PersonBlock()
),
(
"person_page",
PageChooserBlock(page_type="home.HomePersonPage", label="Stránka osoby", icon="user")
)
],
verbose_name="Zaměstnanci",
use_json_field=True,
blank=True,
......@@ -88,6 +134,7 @@ class HomePage(RoutablePageMixin, Page):
"home.HomeArticlesPage",
"home.HomeEventsPage",
"home.HomeDocumentsPage",
"home.HomePeoplePage"
]
intro_panels = Page.content_panels + [
......@@ -172,6 +219,9 @@ class HomePage(RoutablePageMixin, Page):
verbose_name = "Domovská stránka"
# --- BEGIN Articles, events and documents ---
class HomeArticlesPage(RoutablePageMixin, Page):
content = RichTextField(verbose_name="Obsah", blank=True, null=True)
......@@ -229,8 +279,17 @@ class HomeDocumentsPage(RoutablePageMixin, Page):
class HomeContentPageMixin(RoutablePageMixin, Page):
tags = models.ManyToManyField("Tag", verbose_name="Štítky")
author_page = models.ForeignKey(
"home.HomePersonPage",
on_delete=models.SET_NULL,
blank=True,
null=True,
verbose_name="Stránka autora",
help_text="Pokud je vybrána stránka, není nutno vyplňovat jméno autora níže."
)
author = models.CharField(
verbose_name="Autor",
verbose_name="Jméno autora",
max_length=128,
blank=True,
null=True,
......@@ -243,7 +302,13 @@ class HomeContentPageMixin(RoutablePageMixin, Page):
parent_page_type = ["home.HomeArticlesPage"]
content_panels = Page.content_panels + [
MultiFieldPanel(
[
FieldPanel("author_page", icon="user"),
FieldPanel("author", icon="user"),
],
heading="Autor"
),
FieldPanel("date", icon="calendar"),
FieldPanel("content", icon="pilcrow"),
]
......@@ -263,7 +328,13 @@ class HomeArticlePage(HomeContentPageMixin):
perex = models.TextField(verbose_name="Perex")
content_panels = Page.content_panels + [
MultiFieldPanel(
[
FieldPanel("author_page", icon="user"),
FieldPanel("author", icon="user"),
],
heading="Autor"
),
FieldPanel("date", icon="calendar"),
FieldPanel("perex", icon="pilcrow"),
FieldPanel("content", icon="pilcrow"),
......@@ -284,7 +355,13 @@ class HomeEventPage(HomeContentPageMixin):
content_panels = Page.content_panels + [
FieldPanel("date", icon="calendar"),
FieldPanel("location", icon="globe"),
MultiFieldPanel(
[
FieldPanel("author_page", icon="user"),
FieldPanel("author", icon="user"),
],
heading="Autor"
),
FieldPanel("content", icon="pilcrow"),
]
......@@ -303,7 +380,13 @@ class HomeDocumentPage(HomeContentPageMixin):
content_panels = Page.content_panels + [
FieldPanel("document", icon="doc-full"),
MultiFieldPanel(
[
FieldPanel("author_page", icon="user"),
FieldPanel("author", icon="user"),
],
heading="Autor"
),
FieldPanel("date", icon="calendar"),
FieldPanel("content", icon="pilcrow"),
]
......@@ -312,6 +395,58 @@ class HomeDocumentPage(HomeContentPageMixin):
verbose_name = "Dokument"
# --- END Articles, events and documents ---
# --- BEGIN People ---
class HomePeoplePage(RoutablePageMixin, Page):
content = RichTextField(verbose_name="Obsah", blank=True, null=True)
parent_page_type = ["home.HomePage"]
subpage_types = ["home.HomePersonPage"]
content_panels = Page.content_panels + [
FieldPanel("content", icon="pilcrow"),
]
@property
def people(self):
return HomePersonPage.objects.live().order_by("-title").all()
class Meta:
verbose_name = "Rozcestník osob"
class HomePersonPage(RoutablePageMixin, Page):
image = models.ForeignKey(
"wagtailimages.Image",
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+',
verbose_name="Profilový obrázek"
)
position = models.TextField(verbose_name="Pracovní pozice", blank=True, null=True)
email = models.EmailField(verbose_name="Emailová adresa", blank=True, null=True)
description = RichTextField(verbose_name="Popis", blank=True, null=True)
content_panels = Page.content_panels + [
FieldPanel("image", icon="image"),
FieldPanel("position", icon="pilcrow"),
FieldPanel("email", icon="mail"),
FieldPanel("description", icon="pilcrow"),
]
class Meta:
verbose_name = "Osoba"
# --- END People ---
class Tag(models.Model):
name = models.CharField(verbose_name="Jméno", max_length=32)
......
<li>
<div class="flex gap-2">
<div class="flex gap-2">
<a href="{{ page.url }}">
{% if page.position %}
<strong>{{ page.title }}</strong>
{% else %}
{{ page.title }}
{% endif %}
</a>
{% if page.email %}
<a href="mailto:{{ page.email }}">
<div class="flex items-center">
<i class="ico--at text-xl text-pii-cyan"></i>
</div>
</a>
{% endif %}
</div>
</div>
{% if page.position %}
<p class="leading-4 whitespace-pre-line">{{ page.position }}</p>
{% endif %}
</li>
......@@ -11,7 +11,16 @@
<i class="ico--calendar"></i>
<div>{{ page.date }}</div>
</div>
{% if page.author %}
{% 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>
......
......@@ -6,8 +6,16 @@
<div class="container">
<h1 class="font-bebas text-4xl">{{ page.title }}</h1>
{% if page.author %}
<div class="flex gap-2 mt-3 items-center text-gray-700">
{% 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>
......
......@@ -12,7 +12,7 @@
</div>
{% endif %}
<ul class="flex flex-col gap-2 list-disc ml-3">
<ul class="flex flex-col gap-2 list-disc ml-3 font-serif">
{% for document in page.documents %}
<li>
<a
......
......@@ -21,7 +21,15 @@
</div>
{% endif %}
{% if page.author %}
{% 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>
......
......@@ -12,19 +12,18 @@
</div>
{% endif %}
<ul class="flex flex-col gap-2 list-disc ml-3">
<ul class="flex flex-col gap-2 list-disc ml-3 font-serif">
{% for event in page.events %}
<li class="text-gray-500">
<a
class="flex gap-3"
class="flex gap-2 flex-wrap"
href="{{ event.url }}"
>
<div class="underline text-black">{{ event.title }}</div>
<div>
{{ event.date }}{% if event.location %},
{{ event.location }}
{% endif %}
({{ event.date }}{% if event.location %},
{{ event.location }}{% endif %})
</div>
<div class="underline text-black">{{ event.title }}</div>
</a>
</li>
{% endfor %}
......
......@@ -164,7 +164,9 @@
</div>
</section>
<section class="container flex flex-col gap-3" id="dary">
<section class="container flex flex-col gap-3">
<span class="invisible relative top-[-8rem]" id="dary"></span>
<h2 class="font-bebas text-3xl uppercase leading-7">Dary</h2>
<div>
......@@ -176,7 +178,9 @@
</div>
</section>
<section class="flex justify-center bg-grey-50 p-10 w-full" id="kontakty">
<section class="flex justify-center bg-grey-50 p-10 w-full">
<span class="invisible relative top-[-8rem]" id="kontakty"></span>
<div class="container flex flex-col gap-3">
<h2 class="font-bebas text-3xl uppercase leading-7">Kontakty</h2>
......@@ -210,7 +214,9 @@
</div>
</section>
<section class="container flex flex-col gap-3" id="lide">
<section class="container flex flex-col gap-3">
<span class="invisible relative top-[-8rem]" id="lide"></span>
<h2 class="font-bebas text-3xl uppercase leading-7">Lidé</h2>
<div class="flex flex-col lg:grid lg:grid-cols-3 gap-20 min-h-screen">
......@@ -221,9 +227,13 @@
{{ page.director_description }}
</p>
<ul>
<ul class="flex flex-col gap-3">
{% for block in page.director %}
{% if block.block_type == "person" %}
{% include_block block %}
{% else %}
{% include "home/blocks/person_page_block.html" with page=block.value %}
{% endif %}
{% endfor %}
</ul>
</section>
......@@ -241,9 +251,13 @@
{{ page.controller_description }}
</p>
<ul>
<ul class="flex flex-col gap-3">
{% for block in page.controller %}
{% if block.block_type == "person" %}
{% include_block block %}
{% else %}
{% include "home/blocks/person_page_block.html" with page=block %}
{% endif %}
{% endfor %}
</ul>
</section>
......@@ -258,7 +272,11 @@
<ul class="flex flex-col gap-3">
{% for block in page.council_members %}
{% if block.block_type == "person" %}
{% include_block block %}
{% else %}
{% include "home/blocks/person_page_block.html" with page=block %}
{% endif %}
{% endfor %}
</ul>
</section>
......@@ -279,7 +297,11 @@
</h4>
<ul class="flex flex-col leading-5">
{% for block in page.volunteers %}
{% if block.block_type == "person" %}
{% include_block block %}
{% else %}
{% include "home/blocks/person_page_block.html" with page=block %}
{% endif %}
{% endfor %}
</ul>
</section>
......@@ -297,7 +319,11 @@
</p>
{% for block in page.employees %}
{% if block.block_type == "person" %}
{% include_block block %}
{% else %}
{% include "home/blocks/person_page_block.html" with page=block %}
{% endif %}
{% endfor %}
</ul>
</section>
......
{% 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 mb-4">{{ page.title }}</h1>
{% if page.content %}
<div class="prose font-serif mb-3">
{{ page.content|richtext }}
</div>
{% endif %}
<ul class="flex flex-col gap-2 list-disc ml-3 font-serif">
{% for person in page.people %}
<li>
<a
class="underline"
href="{{ person.url }}"
>
{{ person.title }}
</a>
</li>
{% endfor %}
</ul>
</div>
</main>
{% endblock content %}
{% extends "base.html" %}
{% load static wagtailcore_tags wagtailimages_tags %}
{% block content %}
<main class="flex justify-center pt-14">
<div class="container flex flex-col gap-5">
<div class="flex gap-3">
{% if page.image %}
{% image page.image max-400x400 as profile_image %}
<img
class="rounded-full w-40 h-40"
src="{{ profile_image.url }}"
alt="Profilový obrázek osoby {{ page.title }}"
>
{% endif %}
<div class="flex flex-col">
<h1 class="font-bebas text-4xl">{{ page.title }}</h1>
{% if page.position %}
<div class="text-gray-500 whitespace-pre-line font-serif">{{ page.position }}</div>
{% endif %}
{% if page.email %}
<hr class="my-2">
<a class="flex gap-2 font-serif text-gray-500" href="mailto:{{ page.email }}">
<div class="flex items-center">
<i class="ico--at text-xl"></i>
</div>
<span>{{ page.email }}</span>
</a>
{% endif %}
</div>
</div>
{% if page.position %}
<div class="prose max-w-screen-md font-serif">
{{ page.position|richtext }}
</div>
{% endif %}
</div>
</main>
{% endblock content %}
......@@ -45,7 +45,7 @@
<body>
{% wagtailuserbar %}
<nav class="bg-grey-800 py-8 flex justify-center">
<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="/"
......@@ -62,8 +62,7 @@
></div>
<div class="gap-4 hidden md:flex">
<a class="nav__item" href="/#uvod">Úvod</a>
<a class="nav__item" href="/clanky">Aktuálně</a>
<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>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment