diff --git a/district/migrations/0005_districthomepage_footperson_contact.py b/district/migrations/0005_districthomepage_footperson_contact.py new file mode 100644 index 0000000000000000000000000000000000000000..1df05e2915aadfc23cb384fb93c9a566bd0d6a86 --- /dev/null +++ b/district/migrations/0005_districthomepage_footperson_contact.py @@ -0,0 +1,26 @@ +# Generated by Django 3.1.1 on 2020-10-14 10:09 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("shared", "0008_personpage_search_image"), + ("district", "0004_districthomepage_donation_page"), + ] + + operations = [ + migrations.AddField( + model_name="districthomepage", + name="footperson_contact", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + to="shared.personpage", + verbose_name="KontaktnĂ osoba", + ), + ), + ] diff --git a/district/migrations/0006_auto_20201014_1230.py b/district/migrations/0006_auto_20201014_1230.py new file mode 100644 index 0000000000000000000000000000000000000000..a459cbfa8ac9fbc7482b9b13ad3efedbf65f3d2f --- /dev/null +++ b/district/migrations/0006_auto_20201014_1230.py @@ -0,0 +1,18 @@ +# Generated by Django 3.1.1 on 2020-10-14 10:30 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("district", "0005_districthomepage_footperson_contact"), + ] + + operations = [ + migrations.RenameField( + model_name="districthomepage", + old_name="footperson_contact", + new_name="footperson_coord", + ), + ] diff --git a/district/migrations/0007_auto_20201014_1232.py b/district/migrations/0007_auto_20201014_1232.py new file mode 100644 index 0000000000000000000000000000000000000000..033cfb8061b3f31815c24103622aebde42d27240 --- /dev/null +++ b/district/migrations/0007_auto_20201014_1232.py @@ -0,0 +1,51 @@ +# Generated by Django 3.1.1 on 2020-10-14 10:32 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("shared", "0008_personpage_search_image"), + ("district", "0006_auto_20201014_1230"), + ] + + operations = [ + migrations.AddField( + model_name="districthomepage", + name="footperson_electman", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="footperson_electman", + to="shared.personpage", + verbose_name="VolebnĂ manaĹľer", + ), + ), + migrations.AddField( + model_name="districthomepage", + name="footperson_media", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="footperson_media", + to="shared.personpage", + verbose_name="Kontakt pro mĂ©dia", + ), + ), + migrations.AlterField( + model_name="districthomepage", + name="footperson_coord", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="footperson_coord", + to="shared.personpage", + verbose_name="Koordinátor", + ), + ), + ] diff --git a/district/models.py b/district/models.py index 028c59a2d8f8d9899f989953e61a7394bfd9fd4e..c4636ba5776974c1c101335b1fc0f13ad07d13ca 100644 --- a/district/models.py +++ b/district/models.py @@ -7,7 +7,7 @@ from wagtail.core.fields import StreamField from wagtail.core.models import Page from wagtailmetadata.models import MetadataPageMixin -from shared.models import Article +from shared.models import Article, PersonPage class SubpageMixin: @@ -41,6 +41,32 @@ class DistrictHomePage(MetadataPageMixin, Page): donation_page = models.URLField("URL pro pĹ™Ăjem darĹŻ", blank=True, null=True) + # Lide uvedeni v paticce + footperson_coord = models.ForeignKey( + "shared.PersonPage", + verbose_name="Koordinátor", + on_delete=models.PROTECT, + null=True, + blank=True, + related_name="footperson_coord", + ) + footperson_electman = models.ForeignKey( + "shared.PersonPage", + verbose_name="VolebnĂ manaĹľer", + on_delete=models.PROTECT, + null=True, + blank=True, + related_name="footperson_electman", + ) + footperson_media = models.ForeignKey( + "shared.PersonPage", + verbose_name="Kontakt pro mĂ©dia", + on_delete=models.PROTECT, + null=True, + blank=True, + related_name="footperson_media", + ) + # settings matomo_id = models.IntegerField( "Matomo ID pro sledovánĂ návštÄ›vnosti", blank=True, null=True @@ -66,6 +92,14 @@ class DistrictHomePage(MetadataPageMixin, Page): [FieldPanel("contact_email"), FieldPanel("contact_newcomers"),], gettext_lazy("Kontakty"), ), + MultiFieldPanel( + [ + FieldPanel("footperson_coord"), + FieldPanel("footperson_electman"), + FieldPanel("footperson_media"), + ], + gettext_lazy("LidĂ© v zápatĂ stránky"), + ), ] ### RELATIONS diff --git a/district/templates/district/base.html b/district/templates/district/base.html index a7a65a51679e796f041dc4c990672307882ce4e8..a2be2a9fe07080edab3d76d86746e2fbea12449d 100644 --- a/district/templates/district/base.html +++ b/district/templates/district/base.html @@ -196,200 +196,24 @@ </div> </section> - </div> <section class="bg-black py-4 lg:py-12"> <div class="container container--default"> <div class="grid gap-4 grid-cols-1 md:grid-cols-2 xl:grid-cols-3"> - - -<div class="badge "> - - - - <a href="/lide/yveta-martinkova/" class="avatar - badge__avatar avatar--sm -"> - <img src="/assets/d989e6-f3ff0de24e5601b4783127c01a73d5dc22f3fb0b3f4c3965fa329f8a34d4b819.jpg" alt=" - Yveta Martinková -" /> - </a> - - - - - <div class="badge__body"> - <h2 class="head-heavy-2xs badge__title"> - - <a href="/lide/yveta-martinkova/" title=" - Yveta Martinková -" class="content-block--nostyle"> - Yveta Martinková -</a> - - </h2> - - - <p class="badge__occupation"> - Koordinátor - </p> - - - - - - - <a href="tel:+420 770 113 648" class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link" > - <i class="ico--phone"></i> - <span>+420 770 113 648</span> -</a> - - - - - <a href="mailto:yveta.martinkova@pirati.cz" class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link" > - <i class="ico--envelope"></i> - <span>yveta.martinkova@pirati.cz</span> -</a> - - - - - </div> -</div> - - - - - - - -<div class="badge "> - - - - <a href="/lide/jaromir-horky/" class="avatar - badge__avatar avatar--sm -"> - <img src="/assets/d6b500-5107c589366d0e824b13e9ceb7ef2dcc2a93317a5733481a4fd0dc66ce6f1be6.jpg" alt=" - JaromĂr HorkĂ˝ -" /> - </a> - - - - - <div class="badge__body"> - <h2 class="head-heavy-2xs badge__title"> - - <a href="/lide/jaromir-horky/" title=" - JaromĂr HorkĂ˝ -" class="content-block--nostyle"> - JaromĂr HorkĂ˝ -</a> - - </h2> - - - <p class="badge__occupation"> - - VolebnĂ manaĹľer - - </p> - - - - - - - <a href="tel:+420 774 942 021" class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link" > - <i class="ico--phone"></i> - <span>+420 774 942 021</span> -</a> - - - - - <a href="mailto:jaromir.horky@pirati.cz" class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link" > - <i class="ico--envelope"></i> - <span>jaromir.horky@pirati.cz</span> -</a> - - - - - </div> -</div> - - - - - - - -<div class="badge "> - - - - <a href="/lide/jaromir-horky/" class="avatar - badge__avatar avatar--sm -"> - <img src="/assets/d6b500-5107c589366d0e824b13e9ceb7ef2dcc2a93317a5733481a4fd0dc66ce6f1be6.jpg" alt=" - JaromĂr HorkĂ˝ -" /> - </a> - - - - - <div class="badge__body"> - <h2 class="head-heavy-2xs badge__title"> - - <a href="/lide/jaromir-horky/" title=" - JaromĂr HorkĂ˝ -" class="content-block--nostyle"> - JaromĂr HorkĂ˝ -</a> - - </h2> - - - <p class="badge__occupation"> - - Kontakt pro novináře - - </p> - - - - - - - <a href="tel:+420 774 942 021" class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link" > - <i class="ico--phone"></i> - <span>+420 774 942 021</span> -</a> - - - - - <a href="mailto:jaromir.horky@pirati.cz" class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link" > - <i class="ico--envelope"></i> - <span>jaromir.horky@pirati.cz</span> -</a> - - - - - </div> -</div> - - - + {% if page.root_page.footperson_coord %} + {% include "shared/_person_badge.html" with person=page.root_page.footperson_coord title="Koordinátor" %} + {% endif %} + {% if page.root_page.footperson_electman %} + {% include "shared/_person_badge.html" with person=page.root_page.footperson_electman title="VolebnĂ manaĹľer" %} + {% endif %} + {% if page.root_page.footperson_media %} + {% include "shared/_person_badge.html" with person=page.root_page.footperson_media title="Kontakt pro mĂ©dia" %} + {% endif %} </div> </div> </section> + </div> </ui-app> </footer> diff --git a/district/templates/shared/people_page.html b/district/templates/shared/people_page.html index 6fd3844398f5cea41e9f3eaa7c3edf178c23a265..43a748320a12a6b9707275d0840a3e6342aa81a3 100644 --- a/district/templates/shared/people_page.html +++ b/district/templates/shared/people_page.html @@ -13,32 +13,7 @@ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 row-gap-8 col-gap-8"> {% for person in people %} - - <div class="badge "> - - <a href="/{{ person.slug }}" class="avatar badge__avatar avatar--md"> - <img src="{{ person.portrait }}" alt="{{ person.name }}" /> - </a> - - <div class="badge__body"> - <h2 class="head-heavy-xs badge__title"> - <a href="/{{person.slug}}" title="{{ person.name }}" class="content-block--nostyle"> - {{ person.name }} - </a> - </h2> - <p class="badge__occupation">{{ person.perex|linebreaksbr }}</p> - {% if person.phone %} - <a href="tel:person.phone" class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link" > - <i class="ico--phone"></i> - <span>{{ person.phone }}</span> - </a> - {% endif %} - <a href="mailto:{{person.email}}" class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link" > - <i class="ico--envelope"></i><span>{{person.email}}</span> - </a> - </div> - </div> - + {% include "shared/_person_badge.html" with person=person %} {% endfor %} </div> diff --git a/district/templates/shared/person_page.html b/district/templates/shared/person_page.html index dc960dc320f101bba78a97f5307e7d82f2655007..90b384f786c2d2706cebc553464d52858c6af51e 100644 --- a/district/templates/shared/person_page.html +++ b/district/templates/shared/person_page.html @@ -2,6 +2,7 @@ {% load wagtailcore_tags wagtailimages_tags shared_filters %} {% block subheader %} + <header class="hero hero--image pt-16 pb-24 lg:pt-32 pb-24 candidate-detail__hero" style="--image-url: url(https://roznov.pirati.cz/assets/articles/2020/kampan20/zahajenikampan1-067fb446ec8933ae14591cbc29fc53ebb3009e4185900838bfb94752addbfa7b.jpg)" > @@ -77,17 +78,7 @@ <div class="space-y-4"> {% for person in random_people %} - <div class="badge "> - <a href="/{{ person.slug }}" class="avatar badge__avatar avatar--sm"> - <img src="{{ person.portrait }}" alt="{{ person.name }}" /> - </a> - <div class="badge__body"> - <h2 class="head-heavy-2xs badge__title"> - <a href="/{{ person.slug }}" title="{{ person.name }}" class="content-block--nostyle">{{ person.name }}</a> - </h2> - <p class="badge__occupation">{{ person.perex|linebreaksbr }}</p> - </div> - </div> + {% include "shared/_person_badge.html" with person=person skipcontacts=1 %} {% endfor %} </div> diff --git a/shared/models.py b/shared/models.py index 2956bcb271e9753ff38ecbfd4bbb30498b4f0726..e848a3e35ad0f0433047ff527e354aaf70b71aa5 100644 --- a/shared/models.py +++ b/shared/models.py @@ -111,7 +111,6 @@ class PersonPage(MetadataPageMixin, Page): context["random_people"] = ( self.get_siblings(inclusive=False).type(PersonPage).live().specific()[:2] ) - print(context) return context diff --git a/shared/templates/shared/_person_badge.html b/shared/templates/shared/_person_badge.html new file mode 100644 index 0000000000000000000000000000000000000000..0063df4beb17332134d557819eb2e3615b85d549 --- /dev/null +++ b/shared/templates/shared/_person_badge.html @@ -0,0 +1,34 @@ + + <div class="badge "> + + <a href="/{{ person.slug }}" class="avatar badge__avatar avatar--sm"> + <img src="{{ person.portrait }}" alt="{{ person.name }}" /> + </a> + + <div class="badge__body"> + <h2 class="head-heavy-xs badge__title"> + <a href="/{{person.slug}}" title="{{ person.name }}" class="content-block--nostyle"> + {{ person.name }} + </a> + </h2> + <p class="badge__occupation"> + {% if title %} + {{ title }} + {% else %} + {{ person.perex|linebreaksbr }} + {% endif %} + </p> + {% if not skipcontacts %} + {% if person.phone %} + <a href="tel:person.phone" class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link" > + <i class="ico--phone"></i> + <span>{{ person.phone }}</span> + </a> + {% endif %} + <a href="mailto:{{person.email}}" class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link" > + <i class="ico--envelope"></i><span>{{person.email}}</span> + </a> + {% endif %} + + </div> + </div>