diff --git a/shared/migrations/0001_initial.py b/shared/migrations/0001_initial.py index 258de701db3bd719b60aa720f6455f3bbb761297..e1d5eb9224b30e397cfc479de0595c8813773d19 100644 --- a/shared/migrations/0001_initial.py +++ b/shared/migrations/0001_initial.py @@ -1,10 +1,6 @@ -# Generated by Django 3.1.1 on 2020-10-07 07:27 +# Generated by Django 3.1.3 on 2021-01-18 22:48 -import django.db.models.deletion -import wagtail.core.blocks -import wagtail.core.fields -import wagtail.images.blocks -import wagtailmetadata.models +import django.core.validators from django.db import migrations, models @@ -12,91 +8,42 @@ class Migration(migrations.Migration): initial = True - dependencies = [ - ("wagtailcore", "0052_pagelogentry"), - ("wagtailimages", "0022_uploadedimage"), - ] + dependencies = [] operations = [ migrations.CreateModel( - name="SharedArticle", + name="Person", fields=[ ( - "page_ptr", - models.OneToOneField( + "id", + models.AutoField( auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, primary_key=True, serialize=False, - to="wagtailcore.page", + verbose_name="ID", ), ), + ("username", models.TextField(verbose_name="Uživatelské jméno osoby")), ( - "content", - wagtail.core.fields.StreamField( - [ - ( - "title", - wagtail.core.blocks.CharBlock( - icon="title", label="nadpis" - ), - ), - ("perex", wagtail.core.blocks.CharBlock(label="perex")), - ( - "text", - wagtail.core.blocks.RichTextBlock( - features=[ - "h2", - "h3", - "h4", - "h5", - "bold", - "italic", - "ol", - "ul", - "hr", - "link", - "document-link", - "image", - "superscript", - "subscript", - "strikethrough", - "blockquote", - ], - label="text", - ), - ), - ( - "image", - wagtail.images.blocks.ImageChooserBlock( - label="obrázek" - ), - ), - ], + "profile_id", + models.IntegerField( blank=True, - verbose_name="obsah stránky", + default=0, + validators=[ + django.core.validators.MinValueValidator(0), + django.core.validators.MaxValueValidator(2), + ], + verbose_name="Číslo medailonku (0..2) z lide.pirati.cz", ), ), ( - "search_image", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="+", - to="wagtailimages.image", - verbose_name="Search image", - ), + "perex", + models.TextField(blank=True, verbose_name="Defaultni perex osoby"), ), ], options={ - "verbose_name": "Článek", + "verbose_name": "Pirát", + "verbose_name_plural": "Piráti", }, - bases=( - wagtailmetadata.models.MetadataMixin, - "wagtailcore.page", - models.Model, - ), ), ] diff --git a/shared/migrations/0002_auto_20201007_0933.py b/shared/migrations/0002_auto_20201007_0933.py deleted file mode 100644 index 6534c9333d53e10242ad4f19393a6f065e175f0f..0000000000000000000000000000000000000000 --- a/shared/migrations/0002_auto_20201007_0933.py +++ /dev/null @@ -1,57 +0,0 @@ -# Generated by Django 3.1.1 on 2020-10-07 07:33 - -import django.db.models.deletion -import wagtailmetadata.models -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("wagtailforms", "0004_add_verbose_name_plural"), - ("wagtailcore", "0052_pagelogentry"), - ("wagtailimages", "0022_uploadedimage"), - ("wagtailredirects", "0006_redirect_increase_max_length"), - ("shared", "0001_initial"), - ] - - operations = [ - migrations.CreateModel( - name="Article", - 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", - ), - ), - ( - "search_image", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="+", - to="wagtailimages.image", - verbose_name="Search image", - ), - ), - ], - options={ - "verbose_name": "Článek", - }, - bases=( - wagtailmetadata.models.MetadataMixin, - "wagtailcore.page", - models.Model, - ), - ), - migrations.DeleteModel( - name="SharedArticle", - ), - ] diff --git a/shared/migrations/0003_auto_20201007_0944.py b/shared/migrations/0003_auto_20201007_0944.py deleted file mode 100644 index d8dbec5abfab75b8c138dc4796079f312297a1e5..0000000000000000000000000000000000000000 --- a/shared/migrations/0003_auto_20201007_0944.py +++ /dev/null @@ -1,36 +0,0 @@ -# Generated by Django 3.1.1 on 2020-10-07 07:44 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("wagtailimages", "0022_uploadedimage"), - ("shared", "0002_auto_20201007_0933"), - ] - - operations = [ - migrations.AddField( - model_name="article", - name="image", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - to="wagtailimages.image", - verbose_name="obrázek", - ), - ), - migrations.AddField( - model_name="article", - name="perex", - field=models.CharField(blank=True, max_length=250, verbose_name="perex"), - ), - migrations.AddField( - model_name="article", - name="text", - field=models.TextField(blank=True, verbose_name="text článku"), - ), - ] diff --git a/shared/migrations/0004_article_author.py b/shared/migrations/0004_article_author.py deleted file mode 100644 index 4840c03cb2a2c6816ccb1c08eb7403fdd4e0972b..0000000000000000000000000000000000000000 --- a/shared/migrations/0004_article_author.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.1 on 2020-10-07 08:16 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0003_auto_20201007_0944"), - ] - - operations = [ - migrations.AddField( - model_name="article", - name="author", - field=models.TextField(blank=True, verbose_name="autor článku"), - ), - ] diff --git a/shared/migrations/0005_auto_20201007_1028.py b/shared/migrations/0005_auto_20201007_1028.py deleted file mode 100644 index b601a4f4c1f810525c92ec596a1cb1fa3d8bcfff..0000000000000000000000000000000000000000 --- a/shared/migrations/0005_auto_20201007_1028.py +++ /dev/null @@ -1,59 +0,0 @@ -# Generated by Django 3.1.1 on 2020-10-07 08:28 - -import django.db.models.deletion -import modelcluster.contrib.taggit -import modelcluster.fields -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("taggit", "0003_taggeditem_add_unique_index"), - ("shared", "0004_article_author"), - ] - - operations = [ - migrations.CreateModel( - name="ArticleTag", - fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "content_object", - modelcluster.fields.ParentalKey( - on_delete=django.db.models.deletion.CASCADE, to="shared.article" - ), - ), - ( - "tag", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="shared_articletag_items", - to="taggit.tag", - ), - ), - ], - options={ - "abstract": False, - }, - ), - migrations.AddField( - model_name="article", - name="tags", - field=modelcluster.contrib.taggit.ClusterTaggableManager( - blank=True, - help_text="A comma-separated list of tags.", - through="shared.ArticleTag", - to="taggit.Tag", - verbose_name="Tags", - ), - ), - ] diff --git a/shared/migrations/0006_personpage.py b/shared/migrations/0006_personpage.py deleted file mode 100644 index d8e27a71a1e1ab006d4108fefc0d699015fcca00..0000000000000000000000000000000000000000 --- a/shared/migrations/0006_personpage.py +++ /dev/null @@ -1,37 +0,0 @@ -# Generated by Django 3.1.1 on 2020-10-14 07:32 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("wagtailcore", "0052_pagelogentry"), - ("shared", "0005_auto_20201007_1028"), - ] - - operations = [ - migrations.CreateModel( - name="PersonPage", - 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", - ), - ), - ("pirate_id", models.TextField(verbose_name="Pirate ID osoby")), - ("perex", models.TextField(blank=True, verbose_name="Perex osoby")), - ], - options={ - "verbose_name": "Člověk", - }, - bases=("wagtailcore.page",), - ), - ] diff --git a/shared/migrations/0007_peoplepage.py b/shared/migrations/0007_peoplepage.py deleted file mode 100644 index 7d5c3269e331eb24836f843f33cfde999d5800bd..0000000000000000000000000000000000000000 --- a/shared/migrations/0007_peoplepage.py +++ /dev/null @@ -1,52 +0,0 @@ -# Generated by Django 3.1.1 on 2020-10-14 07:54 - -import django.db.models.deletion -import wagtailmetadata.models -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("wagtailimages", "0022_uploadedimage"), - ("wagtailcore", "0052_pagelogentry"), - ("shared", "0006_personpage"), - ] - - operations = [ - migrations.CreateModel( - name="PeoplePage", - 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", - ), - ), - ( - "search_image", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="+", - to="wagtailimages.image", - verbose_name="Search image", - ), - ), - ], - options={ - "verbose_name": "Stránka Lidé", - }, - bases=( - wagtailmetadata.models.MetadataMixin, - "wagtailcore.page", - models.Model, - ), - ), - ] diff --git a/shared/migrations/0008_personpage_search_image.py b/shared/migrations/0008_personpage_search_image.py deleted file mode 100644 index d52ef3ffa403328e4537dd68a60318a1ff71f600..0000000000000000000000000000000000000000 --- a/shared/migrations/0008_personpage_search_image.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 3.1.1 on 2020-10-14 08:55 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("wagtailimages", "0022_uploadedimage"), - ("shared", "0007_peoplepage"), - ] - - operations = [ - migrations.AddField( - model_name="personpage", - name="search_image", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="+", - to="wagtailimages.image", - verbose_name="Search image", - ), - ), - ] diff --git a/shared/migrations/0009_remove_article_author.py b/shared/migrations/0009_remove_article_author.py deleted file mode 100644 index c42fe614587c131ee29b4745a5aa80f3be7eaab9..0000000000000000000000000000000000000000 --- a/shared/migrations/0009_remove_article_author.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.1.1 on 2020-10-14 13:13 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0008_personpage_search_image"), - ] - - operations = [ - migrations.RemoveField( - model_name="article", - name="author", - ), - ] diff --git a/shared/migrations/0010_article_author.py b/shared/migrations/0010_article_author.py deleted file mode 100644 index d3ce43b670b99c65a2f84b0925ecbf1eae611e83..0000000000000000000000000000000000000000 --- a/shared/migrations/0010_article_author.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 3.1.1 on 2020-10-14 13:13 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0009_remove_article_author"), - ] - - operations = [ - migrations.AddField( - model_name="article", - name="author", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - to="shared.personpage", - verbose_name="Autor článku", - ), - ), - ] diff --git a/shared/migrations/0011_personpage_profile_id.py b/shared/migrations/0011_personpage_profile_id.py deleted file mode 100644 index 3af17dd3b9f8f7cd4b99ace49e22f57f083fa49c..0000000000000000000000000000000000000000 --- a/shared/migrations/0011_personpage_profile_id.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 3.1.1 on 2020-10-20 03:14 - -import django.core.validators -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0010_article_author"), - ] - - operations = [ - migrations.AddField( - model_name="personpage", - name="profile_id", - field=models.IntegerField( - blank=True, - default=0, - validators=[ - django.core.validators.MinValueValidator(0), - django.core.validators.MaxValueValidator(2), - ], - verbose_name="Číslo medailonku (0..2) z lide.pirati.cz", - ), - ), - ] diff --git a/shared/migrations/0012_article_date.py b/shared/migrations/0012_article_date.py deleted file mode 100644 index 0adf7dbea89144b3ddce39ff23db4bbceee64120..0000000000000000000000000000000000000000 --- a/shared/migrations/0012_article_date.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 3.1.1 on 2020-11-04 09:02 - -import datetime - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0011_personpage_profile_id"), - ] - - operations = [ - migrations.AddField( - model_name="article", - name="date", - field=models.DateField( - default=datetime.datetime.now, verbose_name="datum článku" - ), - ), - ] diff --git a/shared/migrations/0013_auto_20201104_1053.py b/shared/migrations/0013_auto_20201104_1053.py deleted file mode 100644 index aa135331fcdb6172f41447374697cc67acebe55e..0000000000000000000000000000000000000000 --- a/shared/migrations/0013_auto_20201104_1053.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.1 on 2020-11-04 09:53 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0012_article_date"), - ] - - operations = [ - migrations.RenameField( - model_name="personpage", - old_name="pirate_id", - new_name="username", - ), - ] diff --git a/shared/migrations/0014_auto_20201104_1134.py b/shared/migrations/0014_auto_20201104_1134.py deleted file mode 100644 index 0bbe1292b4c54f86b93e66b337b60b551e53a314..0000000000000000000000000000000000000000 --- a/shared/migrations/0014_auto_20201104_1134.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.1.1 on 2020-11-04 10:34 - -import wagtail.core.fields -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0013_auto_20201104_1053"), - ] - - operations = [ - migrations.AlterField( - model_name="article", - name="text", - field=wagtail.core.fields.RichTextField( - blank=True, verbose_name="text článku" - ), - ), - ] diff --git a/shared/migrations/0015_auto_20210106_1029.py b/shared/migrations/0015_auto_20210106_1029.py deleted file mode 100644 index 4f548a7237ff5c382bcc2fab22c36c26477a5379..0000000000000000000000000000000000000000 --- a/shared/migrations/0015_auto_20210106_1029.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-06 09:29 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0014_auto_20201104_1134"), - ] - - operations = [ - migrations.AlterField( - model_name="personpage", - name="username", - field=models.TextField(verbose_name="Uživatelské jméno osoby"), - ), - ] diff --git a/shared/migrations/0016_auto_20210107_1025.py b/shared/migrations/0016_auto_20210107_1025.py deleted file mode 100644 index 3557b89616d1699e20ddccc4b716a2ebe9c2a1df..0000000000000000000000000000000000000000 --- a/shared/migrations/0016_auto_20210107_1025.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-07 09:25 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0015_auto_20210106_1029"), - ] - - operations = [ - migrations.RemoveField( - model_name="personpage", - name="profile_id", - ), - migrations.RemoveField( - model_name="personpage", - name="username", - ), - ] diff --git a/shared/migrations/0017_person.py b/shared/migrations/0017_person.py deleted file mode 100644 index b259f24ed1ec67a83efe3cc275059a6c91524bb3..0000000000000000000000000000000000000000 --- a/shared/migrations/0017_person.py +++ /dev/null @@ -1,49 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-07 09:58 - -import django.core.validators -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0016_auto_20210107_1025"), - ] - - operations = [ - migrations.CreateModel( - name="Person", - fields=[ - ( - "id", - models.AutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("username", models.TextField(verbose_name="Uživatelské jméno osoby")), - ( - "profile_id", - models.IntegerField( - blank=True, - default=0, - validators=[ - django.core.validators.MinValueValidator(0), - django.core.validators.MaxValueValidator(2), - ], - verbose_name="Číslo medailonku (0..2) z lide.pirati.cz", - ), - ), - ( - "perex", - models.TextField(blank=True, verbose_name="Defaultni perex osoby"), - ), - ], - options={ - "verbose_name": "Pirat", - "verbose_name_plural": "Pirati", - }, - ), - ] diff --git a/shared/migrations/0018_auto_20210107_1101.py b/shared/migrations/0018_auto_20210107_1101.py deleted file mode 100644 index ec027a2eb6aafca059b5657a8250c690446c0cb1..0000000000000000000000000000000000000000 --- a/shared/migrations/0018_auto_20210107_1101.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-07 10:01 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0017_person"), - ] - - operations = [ - migrations.AlterModelOptions( - name="person", - options={"verbose_name": "Pirát", "verbose_name_plural": "Piráti"}, - ), - ] diff --git a/shared/migrations/0019_personpage_person.py b/shared/migrations/0019_personpage_person.py deleted file mode 100644 index 56781183a1d0efb6dd749fa0eb79868e05940447..0000000000000000000000000000000000000000 --- a/shared/migrations/0019_personpage_person.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.1.3 on 2021-01-07 10:30 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("shared", "0018_auto_20210107_1101"), - ] - - operations = [ - migrations.AddField( - model_name="personpage", - name="person", - field=models.ForeignKey( - null=True, - on_delete=django.db.models.deletion.PROTECT, - to="shared.person", - ), - ), - ] diff --git a/shared/models.py b/shared/models.py index 489bccedeecf7cf3e5546bcebd246aa7ada3b2f6..4007fae3160122d028c98267ad5f221df2d83c9f 100644 --- a/shared/models.py +++ b/shared/models.py @@ -1,18 +1,12 @@ -import datetime -import random - import requests from django.core.cache import cache from django.core.validators import MaxValueValidator, MinValueValidator from django.db import models -from modelcluster.contrib.taggit import ClusterTaggableManager -from modelcluster.fields import ParentalKey -from taggit.models import TaggedItemBase +from django.utils import timezone from wagtail.admin.edit_handlers import FieldPanel from wagtail.core.fields import RichTextField from wagtail.core.models import Page from wagtail.images.edit_handlers import ImageChooserPanel -from wagtailmetadata.models import MetadataPageMixin class SubpageMixin: @@ -21,39 +15,32 @@ class SubpageMixin: @property def root_page(self): if not hasattr(self, "_root_page"): - # Vypada to hackove ale lze takto pouzit: dle dokumentace get_ancestors vraci stranky v poradi - # od rootu, tedy domovska stranka je druha v poradi + # Vypada to hackove ale lze takto pouzit: dle dokumentace get_ancestors + # vraci stranky v poradi od rootu, tedy domovska stranka je druha v poradi self._root_page = self.get_ancestors().specific()[1] return self._root_page -class ArticleTag(TaggedItemBase): - content_object = ParentalKey("shared.Article", on_delete=models.CASCADE) - - class ArticleMixin(models.Model): """ Spolecna pole vsech clanku """ - perex = models.CharField("perex", max_length=250, blank=True) - text = RichTextField( - "text článku", - blank=True, - features=[ - "h1", - "h2", - "h3", - "h4", - "bold", - "italic", - "ol", - "ul", - "link", - "document-link", - ], - ) - date = models.DateField("datum článku", blank=False, default=datetime.datetime.now) + RICH_TEXT_FEATURES = [ + "h2", + "h3", + "h4", + "bold", + "italic", + "ol", + "ul", + "link", + "document-link", + ] - tags = ClusterTaggableManager(through=ArticleTag, blank=True) + ### FIELDS + + perex = models.CharField("perex", max_length=250, blank=True) + text = RichTextField("text článku", blank=True, features=RICH_TEXT_FEATURES) + date = models.DateField("datum článku", blank=False, default=timezone.now) image = models.ForeignKey( "wagtailimages.Image", on_delete=models.PROTECT, @@ -61,21 +48,9 @@ class ArticleMixin(models.Model): null=True, verbose_name="obrázek", ) - author = models.ForeignKey( - "shared.PersonPage", - verbose_name="Autor článku", - on_delete=models.PROTECT, - null=True, - blank=True, - ) - - class Meta: - abstract = True - verbose_name = "Článek" + author = models.CharField("autor", max_length=250, blank=True, null=True) - -class Article(ArticleMixin, Page, SubpageMixin, MetadataPageMixin): - """ Univerzalni clanek pro vsechny weby """ + ### PANELS content_panels = Page.content_panels + [ FieldPanel("perex"), @@ -83,14 +58,16 @@ class Article(ArticleMixin, Page, SubpageMixin, MetadataPageMixin): FieldPanel("text"), FieldPanel("author"), ImageChooserPanel("image"), - FieldPanel("tags"), ] + class Meta: + abstract = True + class Person(models.Model): - """Informace o Piratovi. Slouzi prevazne jako cache informaci o osobe pro uziti v ramci Majaku. - Snaha je zadavat tady minimum informaci o osobe a zbytek vytahovat via API z jinych zdroju, - neb nechceme dalsi databazi lidi. + """Informace o Piratovi. Slouzi prevazne jako cache informaci o osobe pro + uziti v ramci Majaku. Snaha je zadavat tady minimum informaci o osobe a + zbytek vytahovat via API z jinych zdroju, neb nechceme dalsi databazi lidi. """ # ve formatu iapi: https://iapi.pirati.cz/v1/user?username=john.doe @@ -160,53 +137,3 @@ class Person(models.Model): class Meta: verbose_name_plural = "Piráti" verbose_name = "Pirát" - - -class PersonPage(SubpageMixin, MetadataPageMixin, Page): - """Stranka Pirata v kontextu jednoho webu""" - - person = models.ForeignKey(Person, on_delete=models.PROTECT, null=True) - perex = models.TextField("Perex osoby", blank=True) - - content_panels = Page.content_panels + [ - FieldPanel("person"), - FieldPanel("perex"), - ] - - class Meta: - verbose_name = "Člověk" # to zni hrde - - @property - def pageperex(self): - """Vraci perex Pirata nejblizzsi lokalnimu kontextu. - Zamerne jiny nazev, aby v template bylo na vyber z x.perex, x.person.perex a x.pageperex - """ - return self.perex or self.person.perex - - def get_context(self, request): - context = super().get_context(request) - # Na strance detailu cloveka se vpravo zobrazuji 3 dalsi nahodne profily - context["random_people"] = list( - self.get_siblings(inclusive=False).type(PersonPage).live().specific() - ) - random.shuffle(context["random_people"]) - context["random_people"] = context["random_people"][:3] - return context - - -class PeoplePage(SubpageMixin, MetadataPageMixin, Page): - """ Stranka se zobrazenim lidi v dane organizaci """ - - settings_panels = [] - - subpage_types = [ - "shared.PersonPage", - ] - - class Meta: - verbose_name = "Stránka Lidé" - - def get_context(self, request): - context = super().get_context(request) - context["people"] = self.get_children().live().specific() - return context