Skip to content
Snippets Groups Projects
Commit c80a5841 authored by OndraRehounek's avatar OndraRehounek
Browse files

Merge branch 'feature/pirati-cz-ondra' into feature/pirati-cz

parents 7859b361 b4127d9d
No related branches found
No related tags found
3 merge requests!607Pirati.cz,!587added main and profile picture to main person model, main_person template in...,!575Feature/pirati cz
Pipeline #9410 passed
...@@ -140,7 +140,7 @@ class OtherLinksBlock(StructBlock): ...@@ -140,7 +140,7 @@ class OtherLinksBlock(StructBlock):
class SocialLinkBlock(LinkBlock): class SocialLinkBlock(LinkBlock):
icon = CharBlock(label="Ikona") # TODO CSS class name or somthing better? icon = CharBlock(label="Ikona", help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons") # TODO CSS class name or somthing better?
# ARTICLE BLOCKS # ARTICLE BLOCKS
......
# Generated by Django 4.0.7 on 2022-08-24 14:12
import django.db.models.deletion
import wagtail.blocks
import wagtail.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("wagtailimages", "0024_index_image_file_hash"),
("main", "0015_mainarticlespage_last_import_log"),
]
operations = [
migrations.RemoveField(
model_name="mainpersonpage",
name="facebook",
),
migrations.RemoveField(
model_name="mainpersonpage",
name="instagram",
),
migrations.RemoveField(
model_name="mainpersonpage",
name="twitter",
),
migrations.AddField(
model_name="mainpersonpage",
name="main_image",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.PROTECT,
related_name="+",
to="wagtailimages.image",
verbose_name="Hlavní obrázek",
),
),
migrations.AddField(
model_name="mainpersonpage",
name="people",
field=wagtail.fields.StreamField(
[
(
"people_group",
wagtail.blocks.StructBlock(
[
("title", wagtail.blocks.CharBlock(label="Titulek")),
(
"slug",
wagtail.blocks.CharBlock(
help_text="Není třeba vyplňovat, bude automaticky vyplněno",
label="Slug skupiny",
required=False,
),
),
(
"person_list",
wagtail.blocks.ListBlock(
wagtail.blocks.PageChooserBlock(
label="Detail osoby",
page_type=["main.MainPersonPage"],
),
label="Skupina osob",
),
),
],
label="Seznam osob",
),
)
],
blank=True,
use_json_field=None,
verbose_name="Lidé",
),
),
migrations.AddField(
model_name="mainpersonpage",
name="profile_image",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.PROTECT,
related_name="+",
to="wagtailimages.image",
verbose_name="Profilový obrázek",
),
),
migrations.AddField(
model_name="mainpersonpage",
name="social_links",
field=wagtail.fields.StreamField(
[
(
"social_links",
wagtail.blocks.StructBlock(
[
(
"text",
wagtail.blocks.CharBlock(
label="Titulkek odkazu (text, který se zobrazí místo dlouhého odkazu)"
),
),
("link", wagtail.blocks.URLBlock(label="Odkaz")),
(
"icon",
wagtail.blocks.CharBlock(
help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons",
label="Ikona",
),
),
]
),
)
],
blank=True,
use_json_field=None,
verbose_name="Odkazy na sociální sítě",
),
),
migrations.AlterField(
model_name="mainhomepage",
name="social_links",
field=wagtail.fields.StreamField(
[
(
"social_links",
wagtail.blocks.StructBlock(
[
(
"text",
wagtail.blocks.CharBlock(
label="Titulkek odkazu (text, který se zobrazí místo dlouhého odkazu)"
),
),
("link", wagtail.blocks.URLBlock(label="Odkaz")),
(
"icon",
wagtail.blocks.CharBlock(
help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons",
label="Ikona",
),
),
]
),
)
],
blank=True,
use_json_field=None,
verbose_name="Odkazy na sociální sítě v zápatí webu",
),
),
]
...@@ -426,6 +426,23 @@ class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, ...@@ -426,6 +426,23 @@ class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page): class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page):
### FIELDS ### FIELDS
main_image = models.ForeignKey(
"wagtailimages.Image",
on_delete=models.PROTECT,
blank=True,
null=True,
verbose_name="Hlavní obrázek",
related_name="+"
)
profile_image = models.ForeignKey(
"wagtailimages.Image",
on_delete=models.PROTECT,
blank=True,
null=True,
verbose_name="Profilový obrázek",
related_name="+"
)
before_name = models.CharField( before_name = models.CharField(
"Tituly před jménem", max_length=16, blank=True, null=True "Tituly před jménem", max_length=16, blank=True, null=True
) )
...@@ -445,13 +462,23 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, ...@@ -445,13 +462,23 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
max_length=32, max_length=32,
) )
social_links = StreamField(
[
("social_links", blocks.SocialLinkBlock()),
],
verbose_name="Odkazy na sociální sítě",
blank=True,
)
people = StreamField(
[("people_group", blocks.PeopleGroupBlock(label="Seznam osob"))],
verbose_name="Lidé",
blank=True,
)
email = models.CharField("E-mail", max_length=128, blank=True, null=True) email = models.CharField("E-mail", max_length=128, blank=True, null=True)
phone = models.CharField("Telefonní kontakt", max_length=16, blank=True, null=True) phone = models.CharField("Telefonní kontakt", max_length=16, blank=True, null=True)
facebook = models.URLField("Odkaz na Facebook", blank=True, null=True)
twitter = models.URLField("Odkaz na Twitter", blank=True, null=True)
instagram = models.URLField("Odkaz na Instagram", blank=True, null=True)
settings_panels = [] settings_panels = []
### RELATIONS ### RELATIONS
...@@ -461,6 +488,8 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, ...@@ -461,6 +488,8 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
### PANELS ### PANELS
content_panels = Page.content_panels + [ content_panels = Page.content_panels + [
FieldPanel("main_image"),
FieldPanel("profile_image"),
FieldPanel("before_name"), FieldPanel("before_name"),
FieldPanel("after_name"), FieldPanel("after_name"),
FieldPanel("position"), FieldPanel("position"),
...@@ -469,9 +498,8 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, ...@@ -469,9 +498,8 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
FieldPanel("text"), FieldPanel("text"),
FieldPanel("email"), FieldPanel("email"),
FieldPanel("phone"), FieldPanel("phone"),
FieldPanel("facebook"), FieldPanel("social_links"),
FieldPanel("twitter"), FieldPanel("people"),
FieldPanel("instagram"),
] ]
def get_context(self, request): def get_context(self, request):
......
{% load wagtailcore_tags %}
<header
class="bg-black flex items-center header-clip photo-header py-32 mb-20 w-full bg-no-repeat bg-cover bg-center"
style="background-image: url('{{ image_url | default_if_none:"https://cc.cz/wp-content/uploads/2022/04/bartos-otv.jpg" }}')"
>
<div class="grid-container header-max-width pt-16">
<div class="pl-4 pr-2 col-start-1 col-end-3 sm:col-start-2 sm:col-end-13 sm:pr-0">
<h1 class="font-alt text-white">
<span class="text-2xl">{{ before_title | default_if_none:"" }}</span><br>
<span class="font-alt text-7xl">{{ page.title | default_if_none:"" }}</span><span class="text-2xl">{{ after_title | default_if_none:"" }}</span><br>
<span class="font-alt">{{ subtitle | default_if_none:"" }}</span>
</h1>
</div>
</div>
</header>
\ No newline at end of file
...@@ -2,14 +2,16 @@ ...@@ -2,14 +2,16 @@
{% load static wagtailcore_tags wagtailimages_tags wagtailroutablepage_tags %} {% load static wagtailcore_tags wagtailimages_tags wagtailroutablepage_tags %}
{% block content %} {% block content %}
{% include 'main/includes/layout/simple_page_header.html' %} {% image page.image max-3840x2160 as main_img %}
{% with before_title=page.date after_title=page.after_name subtitle=page.position image_url=main_img.url %}
{% include 'main/includes/layout/photo_page_header.html' %}
{% endwith %}
{# {% routablepageurl page.root_page.articles_page "tags" as articles_tag_page_url %}#} {# {% routablepageurl page.root_page.articles_page "tags" as articles_tag_page_url %}#}
<main role="main" class="mb-10 xl:mb-32"> <main role="main" class="mb-10 xl:mb-32">
<div class="grid-container mb-2 lg:mb-12"> <div class="grid-container mb-2 lg:mb-12">
<div class="grid-left-side h-full bg-grey-150 left-tab"> <div class="grid-left-side h-full bg-grey-150 left-tab">
<div class="p-6"> <div class="p-6">
<span class="font-bold 3xl:text-xl">AUTOR ČLÁNKU: <br> {{ page.author }}</span><br> <span class="font-bold 3xl:text-xl">AUTOR ČLÁNKU: <br> {{ page.author_page.title }}</span><br>
</div> </div>
</div> </div>
<div class="grid-content leading-6"> <div class="grid-content leading-6">
...@@ -33,6 +35,7 @@ ...@@ -33,6 +35,7 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</main> </main>
{% include 'main/includes/newsletter_section.html' %}
{# {% if related_articles|length %}#} {# {% if related_articles|length %}#}
{# <section class="mt-16 md:mt-24">#} {# <section class="mt-16 md:mt-24">#}
......
...@@ -2,9 +2,152 @@ ...@@ -2,9 +2,152 @@
{% load static wagtailcore_tags wagtailimages_tags shared_filters %} {% load static wagtailcore_tags wagtailimages_tags shared_filters %}
{% block content %} {% block content %}
<main role="main"> <main role="main">
{% image page.main_image max-3840x2160 as main_img %}
{% with before_title=page.before_name after_title=page.after_name subtitle=page.position image_url=main_img.url %}
{% include 'main/includes/layout/photo_page_header.html' %}
{% endwith %}
<div class="">
<section class="grid-container person-grid-container">
<div class="grid-content leading-6">
<article class="mb-4 xl:mb-24 xl:mr-2">
<p class="font-alt mb-5">
{{ page.perex }}
</p>
<p class="font-alt mb-5">
{{ page.text|richtext }}
</p>
</article>
</div>
{% if page.email or page.phone %}
<div class="grid-right-side mb-8 xl:mb-0">
<div class="bg-grey-100 mb-1 px-7 py-9">
{% if page.email %}
<div class="flex mb-2">
<i class="ico--envelope mr-2"></i>
<a href="mailto:{{ page.email }}" class="text-turquoise-500 underline">
{{ page.email }}
</a>
</div>
{% endif %}
{% if page.phone %}
<div class="flex mb-2">
<i class="ico--phone mr-2"></i>
<a href="tel:+{{ page.phone }}">
{{ page.phone }}
</a>
</div>
{% endif %}
</div>
{% endif %}
{% if page.social_links %}
<div class="bg-grey-100 px-7 py-9">
{% for social_block in page.social_links %}
<div class="flex mb-2">
<i class="{{ social_block.value.icon }} mr-2"></i>
<a href="{{ social_block.value.link }}">
{{ social_block.value.text }}
</a>
</div>
{% endfor %}
</div>
</div>
{% endif %}
</section>
</div>
{% if tweet_list %}
<section class="grid-container no-max">
<div class="grid-content-with-right-side">
<h2 class="head-4xl text-center xl:text-left">
Aktuálně na Twitteru
</h2>
<div class="mb-8 flex flex-wrap">
{% for tweet in page.tweet_list %}
<div class="md:w-1/3 lg:w-1/4">
<div class="p-4 flex flex-col items-center text-center border border-grey-100">
<img class="rounded-full shadow-sm w-12 mb-2" src="https://randomuser.me/api/portraits/women/56.jpg"
alt="user image"/>
<h5 class="font-alt mb-2">{{ tweet.author_name }}</h5>
<small class="mb-4 text-turquoise-400">@{{ tweet.author_username }}</small>
<p class="text-base leading-6 mb-2">{{ tweet.text }}</p>
<a href="" class="hover:no-underline">
<i class="ico--twitter text-turquoise-400 text-xl"></i>
</a>
</div>
</div>
{% endfor %}
</div>
</div>
</section>
{% endif %}
{% if article_page_list %}
<section class="grid-container mb-4 justify-start xl:mb-14">
<div class="grid-content">
<div class="leading-6">
<h2 class="head-4xl">
Články
</h2>
{% for article_preview in article_page_list %}
<div class="flex flex-col justify-between items-start mb-9">
<div class="flex font-bold mb-4 text-xs text-white uppercase">
<span class="bg-green-400 mr-1 px-1">{{ article_preview.date }}</span>
{% for tag in article_preview.tags.all %}
<span class="bg-violet-400 mr-1 px-1">{{ tag }}</span>
{% endfor %}
</div>
<h4 class="head-3xl mb-4">
{{ article_preview.title }}
</h4>
<p class="mb-6">
{{ article_preview.perex }}
</p>
{% include 'main/includes/button_animated.html' with btn_link=article_preview.url btn_text="Číst dále" %}
</div>
{% endfor %}
</div>
</div>
</section>
{% endif %}
{% for people_group in page.people %}
<section class="grid-container person-grid-container mb-4 justify-start xl:mb-14">
<div class="grid-content-with-right-side">
<h2 class="head-4xl text-left">
{{ people_group.value.title }}
</h2>
{% for person in people_group.value.person_list %}
<div class="flex flex-wrap">
<div class="flex mb-16 person-box-medium">
<div class="shrink-0 mr-4">
{% image person.profile_image fill-250x250 as profile_image %}
<img
class="rounded-full shadow-sm w-20 mb-2 xl:w-44"
src="{{ profile_image.url }}"
alt=" {{ person.title }}"
>
</div>
<div class="flex flex-col justify-between py-4">
<div class="flex flex-col">
<h4 class="head-3xl">
{{ person.title }}
</h4>
<span
class="text-sm xl:text-base leading-6 mb-6">{{ person.position|default_if_none:"" }}</span>
<div>
{% include 'main/includes/button_animated.html' with btn_link=person.url btn_text="Detail" %}
</div>
</div>
{% include 'main/includes/newsletter_section.html' %} </div>
</main> </div>
{% endfor %}
</div>
</div>
</section>
{% endfor %}
</div>
{% include 'main/includes/newsletter_section.html' %}
</main>
{% endblock content %} {% endblock content %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment