Skip to content
Snippets Groups Projects
Commit a37647d2 authored by OndraPetrzilka's avatar OndraPetrzilka
Browse files

added main and profile picture to main person model, main_person template in...

added main and profile picture to main person model, main_person template in progress, migrations for new fields in model
parent d538f7b1
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
# Generated by Django 4.0.7 on 2022-08-24 10:43
from django.db import migrations, models
import wagtail.blocks
import wagtail.fields
class Migration(migrations.Migration):
dependencies = [
('main', '0011_alter_mainarticlepage_content_and_more'),
]
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.ImageField(blank=True, null=True, upload_to='', 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.ImageField(blank=True, null=True, upload_to='', 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(label='Ikona'))]))], blank=True, use_json_field=None, verbose_name='Odkazy na sociální sítě'),
),
migrations.AlterField(
model_name='mainpeoplepage',
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é'),
),
]
......@@ -415,6 +415,8 @@ class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page):
### FIELDS
main_image = models.ImageField("Hlavní obrázek", blank=True, null=True)
profile_image = models.ImageField("Profilový obrázek", blank=True, null=True)
before_name = models.CharField(
"Tituly před jménem", max_length=16, blank=True, null=True
)
......@@ -434,13 +436,23 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
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)
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 = []
### RELATIONS
......@@ -450,6 +462,8 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
### PANELS
content_panels = Page.content_panels + [
FieldPanel("main_image"),
FieldPanel("profile_image"),
FieldPanel("before_name"),
FieldPanel("after_name"),
FieldPanel("position"),
......@@ -458,9 +472,8 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin,
FieldPanel("text"),
FieldPanel("email"),
FieldPanel("phone"),
FieldPanel("facebook"),
FieldPanel("twitter"),
FieldPanel("instagram"),
FieldPanel("social_links"),
FieldPanel("people"),
]
def get_context(self, request):
......
......@@ -4,7 +4,155 @@
{% block content %}
<main role="main">
{# {{> organisms-header }}#}
{##}
{# {{> molecules-photo_header }}#}
<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.text|richtext }}
</p>
</article>
</div>
<div class="grid-right-side mb-8 xl:mb-0">
<div class="bg-grey-100 mb-1 px-7 py-9">
<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>
<div class="flex mb-2">
<i class="ico--phone mr-2"></i>
<a href="tel:+{{ page.phone }}">
{{ page.phone }}
</a>
</div>
</div>
<div class="bg-grey-100 px-7 py-9">
{% if page.facebook %}
<div class="flex mb-2">
<i class="ico--facebook mr-2"></i>
<a href="{{ page.facebook }}">
Facebook
</a>
</div>
{% endif %}
{% if page.twitter %}
<div class="flex mb-2">
<i class="ico--twitter mr-2"></i>
<a href="{{ page.twitter }}">
Twitter
</a>
</div>
{% endif %}
{% if page.instagram %}
<div class="flex mb-2">
<i class="ico--instagram mr-2"></i>
<a href="{{ page.instagram }}">
Instagram
</a>
</div>
{% endif %}
</div>
</div>
</section>
</div>
{% if not tweet_list.empty %}
<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 not article_page_list.empty %}
<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 %}
<div class="flex flex-wrap">
<div class="flex mb-16 person-box-medium">
<div class="shrink-0 mr-4">
{% image people_group.value.profile_image max-300x300 as profile_image %}
<img
class="rounded-full shadow-sm w-20 mb-2 xl:w-44"
src="{{ profile_image.url }}"
alt=" {{ people_group.value.title }}"
>
</div>
<div class="flex flex-col justify-between py-4">
<div class="flex flex-col">
<h4 class="head-3xl">
{{ people_group.value.title }}
</h4>
<span
class="text-sm xl:text-base leading-6 mb-6">{{ people_group.value.position|default_if_none:"" }}</span>
</div>
<div>
{% include 'main/includes/button_animated.html' with btn_link=people_group.value.url btn_text="Detail" %}
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</section>
{% endfor %}
</div>
{% include 'main/includes/newsletter_section.html' %}
</main>
{% endblock content %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment