diff --git a/main/migrations/0007_mainarticlepage_region_and_more.py b/main/migrations/0007_mainarticlepage_region_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..c024043204d194c0c1e8186a02197c458695713d --- /dev/null +++ b/main/migrations/0007_mainarticlepage_region_and_more.py @@ -0,0 +1,51 @@ +# Generated by Django 4.0.7 on 2022-08-23 10:07 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("main", "0006_mainpersonpage_after_name_mainpersonpage_before_name_and_more"), + ] + + operations = [ + migrations.AddField( + model_name="mainarticlepage", + name="region", + field=models.IntegerField( + blank=True, + choices=[ + ("PHA", "Hlavní město Praha"), + ("JHC", "Jihočeský kraj"), + ("JHM", "Jihomoravský kraj"), + ("KVK", "Karlovarský kraj"), + ("VYS", "Kraj Vysočina"), + ("KHK", "Královéhradecký kraj"), + ("LBK", "Liberecký kraj"), + ("MSK", "Moravskoslezský kraj"), + ("OLK", "Olomoucký kraj"), + ("PAK", "Pardubický kraj"), + ("PLK", "Plzeňský kraj"), + ("STC", "Středočeský kraj"), + ("ULK", "Ústecký kraj"), + ("ZLK", "Zlínský kraj"), + ], + help_text="Kraj, ke kterému se článek vztahuje", + null=True, + verbose_name="Kraj", + ), + ), + migrations.AlterField( + model_name="mainarticlepage", + name="author_page", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="main.mainpersonpage", + verbose_name="Stránka autora (osoby)", + ), + ), + ] diff --git a/main/models.py b/main/models.py index 1b9813531ee7c1b34124a05b93c5f1d60a52eb87..10203ade5ae44ed229e4b7f25bde3eaa91bc6504 100644 --- a/main/models.py +++ b/main/models.py @@ -15,6 +15,7 @@ from wagtail.core.fields import RichTextField, StreamField from wagtail.core.models import Page from wagtailmetadata.models import MetadataPageMixin +from elections2021.constants import REGION_CHOICES # pozor, import ze sousedního modulu from shared.const import RICH_TEXT_DEFAULT_FEATURES from shared.forms import SubscribeForm from shared.models import ( @@ -26,9 +27,9 @@ from shared.models import ( ) from shared.utils import make_promote_panels, subscribe_to_newsletter from tuning import admin_help +from twitter_utils.models import Tweet from . import blocks -from twitter_utils.models import Tweet class MainHomePage(MenuMixin, ExtendedMetadataHomePageMixin, MetadataPageMixin, Page): @@ -172,7 +173,14 @@ class MainHomePage(MenuMixin, ExtendedMetadataHomePageMixin, MetadataPageMixin, class MainWorkPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page): perex = models.TextField() timeline = StreamField( - [("article_list", PageChooserBlock(page_type="main.MainArticlePage", label="Vybrat aktualitu"))], + [ + ( + "article_list", + PageChooserBlock( + page_type="main.MainArticlePage", label="Vybrat aktualitu" + ), + ) + ], verbose_name="Timeline", blank=True, ) @@ -183,10 +191,7 @@ class MainWorkPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, P subpage_types = [] ### PANELS - content_panels = Page.content_panels + [ - FieldPanel('perex'), - FieldPanel('timeline') - ] + content_panels = Page.content_panels + [FieldPanel("perex"), FieldPanel("timeline")] ### OTHERS @@ -205,7 +210,18 @@ class MainArticlePage( ### FIELDS author_page = models.ForeignKey( - "main.MainPersonPage", on_delete=models.SET_NULL, null=True, blank=True + "main.MainPersonPage", + on_delete=models.SET_NULL, + null=True, + blank=True, + verbose_name="Stránka autora (osoby)", + ) + region = models.IntegerField( + choices=REGION_CHOICES, + null=True, + blank=True, + verbose_name="Kraj", + help_text="Kraj, ke kterému se článek vztahuje", ) tags = ClusterTaggableManager(through=MainArticleTag, blank=True) @@ -335,13 +351,24 @@ class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page): ### FIELDS - before_name = models.CharField("Tituly před jménem", max_length=16, blank=True, null=True) - after_name = models.CharField("Tituly za jménem", max_length=16, blank=True, null=True) - position = models.CharField("Pozice/povolání", max_length=128, blank=True, null=True) + before_name = models.CharField( + "Tituly před jménem", max_length=16, blank=True, null=True + ) + after_name = models.CharField( + "Tituly za jménem", max_length=16, blank=True, null=True + ) + position = models.CharField( + "Pozice/povolání", max_length=128, blank=True, null=True + ) perex = models.TextField() text = RichTextField() - twitter_username = models.CharField("Uživatelské jméno twitter pro získání příspěvků", blank=True, null=True, max_length=32) + twitter_username = models.CharField( + "Uživatelské jméno twitter pro získání příspěvků", + blank=True, + null=True, + max_length=32, + ) email = models.CharField("E-mail", max_length=128, blank=True, null=True) phone = models.CharField("Telefonní kontakt", max_length=16, blank=True, null=True) @@ -359,23 +386,27 @@ class MainPersonPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, ### PANELS content_panels = Page.content_panels + [ - FieldPanel('before_name'), - FieldPanel('after_name'), - FieldPanel('position'), - FieldPanel('perex'), - FieldPanel('twitter_username'), - FieldPanel('text'), - FieldPanel('email'), - FieldPanel('phone'), - FieldPanel('facebook'), - FieldPanel('twitter'), - FieldPanel('instagram'), + FieldPanel("before_name"), + FieldPanel("after_name"), + FieldPanel("position"), + FieldPanel("perex"), + FieldPanel("twitter_username"), + FieldPanel("text"), + FieldPanel("email"), + FieldPanel("phone"), + FieldPanel("facebook"), + FieldPanel("twitter"), + FieldPanel("instagram"), ] def get_context(self, request): context = super(MainPersonPage, self).get_context(request) - context['article_page_list'] = MainArticlePage.objects.filter(author_page=self.id) - context['tweet_list'] = Tweet.objects.filter(author_username=self.twitter_username) + context["article_page_list"] = MainArticlePage.objects.filter( + author_page=self.id + ) + context["tweet_list"] = Tweet.objects.filter( + author_username=self.twitter_username + ) return context ### OTHERS