From cb1e357937eb4ec39cf950bb08798f7b59fe22cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com> Date: Mon, 18 Jan 2021 23:56:12 +0100 Subject: [PATCH] shared: Refactor models and reset and squash migrations --- shared/migrations/0001_initial.py | 93 +++---------- shared/migrations/0002_auto_20201007_0933.py | 57 -------- shared/migrations/0003_auto_20201007_0944.py | 36 ----- shared/migrations/0004_article_author.py | 18 --- shared/migrations/0005_auto_20201007_1028.py | 59 -------- shared/migrations/0006_personpage.py | 37 ----- shared/migrations/0007_peoplepage.py | 52 ------- .../0008_personpage_search_image.py | 27 ---- .../migrations/0009_remove_article_author.py | 17 --- shared/migrations/0010_article_author.py | 25 ---- .../migrations/0011_personpage_profile_id.py | 27 ---- shared/migrations/0012_article_date.py | 22 --- shared/migrations/0013_auto_20201104_1053.py | 18 --- shared/migrations/0014_auto_20201104_1134.py | 21 --- shared/migrations/0015_auto_20210106_1029.py | 18 --- shared/migrations/0016_auto_20210107_1025.py | 21 --- shared/migrations/0017_person.py | 49 ------- shared/migrations/0018_auto_20210107_1101.py | 17 --- shared/migrations/0019_personpage_person.py | 23 ---- shared/models.py | 127 ++++-------------- 20 files changed, 47 insertions(+), 717 deletions(-) delete mode 100644 shared/migrations/0002_auto_20201007_0933.py delete mode 100644 shared/migrations/0003_auto_20201007_0944.py delete mode 100644 shared/migrations/0004_article_author.py delete mode 100644 shared/migrations/0005_auto_20201007_1028.py delete mode 100644 shared/migrations/0006_personpage.py delete mode 100644 shared/migrations/0007_peoplepage.py delete mode 100644 shared/migrations/0008_personpage_search_image.py delete mode 100644 shared/migrations/0009_remove_article_author.py delete mode 100644 shared/migrations/0010_article_author.py delete mode 100644 shared/migrations/0011_personpage_profile_id.py delete mode 100644 shared/migrations/0012_article_date.py delete mode 100644 shared/migrations/0013_auto_20201104_1053.py delete mode 100644 shared/migrations/0014_auto_20201104_1134.py delete mode 100644 shared/migrations/0015_auto_20210106_1029.py delete mode 100644 shared/migrations/0016_auto_20210107_1025.py delete mode 100644 shared/migrations/0017_person.py delete mode 100644 shared/migrations/0018_auto_20210107_1101.py delete mode 100644 shared/migrations/0019_personpage_person.py diff --git a/shared/migrations/0001_initial.py b/shared/migrations/0001_initial.py index 258de701..e1d5eb92 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 6534c933..00000000 --- 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 d8dbec5a..00000000 --- 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 4840c03c..00000000 --- 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 b601a4f4..00000000 --- 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 d8e27a71..00000000 --- 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 7d5c3269..00000000 --- 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 d52ef3ff..00000000 --- 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 c42fe614..00000000 --- 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 d3ce43b6..00000000 --- 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 3af17dd3..00000000 --- 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 0adf7dbe..00000000 --- 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 aa135331..00000000 --- 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 0bbe1292..00000000 --- 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 4f548a72..00000000 --- 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 3557b896..00000000 --- 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 b259f24e..00000000 --- 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 ec027a2e..00000000 --- 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 56781183..00000000 --- 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 489bcced..4007fae3 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 -- GitLab