From 1a95af90976c1b05113d78d63a9bbce61756117d Mon Sep 17 00:00:00 2001 From: mist Date: Thu, 12 Nov 2020 13:24:57 +0100 Subject: [PATCH] =?UTF-8?q?popisy=20model=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- filmovy-festival/home/models.py | 22 +++++++++ filmovy-festival/program/models.py | 53 +++++++++++++++++++++ filmovy-festival/readme.md | 25 ++++++++++ filmovy-festival/stranka/models.py | 35 ++++++++++++++ showroom/catalog/models.py | 61 +++++++++++++++++++++++++ showroom/models.py | 0 showroom/readme.md | 19 ++++++++ showroom/stranka/models.py | 35 ++++++++++++++ veterinarni-klinika/aktuality/models.py | 0 veterinarni-klinika/blog/models.py | 55 ++++++++++++++++++++++ veterinarni-klinika/home/models.py | 22 +++++++++ veterinarni-klinika/readme.md | 27 +++++++++++ veterinarni-klinika/stranka/models.py | 35 ++++++++++++++ 13 files changed, 389 insertions(+) create mode 100644 filmovy-festival/home/models.py create mode 100644 filmovy-festival/program/models.py create mode 100644 filmovy-festival/readme.md create mode 100644 filmovy-festival/stranka/models.py create mode 100644 showroom/catalog/models.py create mode 100644 showroom/models.py create mode 100644 showroom/readme.md create mode 100644 showroom/stranka/models.py create mode 100644 veterinarni-klinika/aktuality/models.py create mode 100644 veterinarni-klinika/blog/models.py create mode 100644 veterinarni-klinika/home/models.py create mode 100644 veterinarni-klinika/readme.md create mode 100644 veterinarni-klinika/stranka/models.py diff --git a/filmovy-festival/home/models.py b/filmovy-festival/home/models.py new file mode 100644 index 0000000..d4e31b9 --- /dev/null +++ b/filmovy-festival/home/models.py @@ -0,0 +1,22 @@ +from django.db import models + +from modelcluster.fields import ParentalKey + +from wagtail.core.models import Page, Orderable +from wagtail.core.fields import RichTextField +from wagtail.images.edit_handlers import ImageChooserPanel +from wagtail.admin.edit_handlers import FieldPanel, InlinePanel + + +class HomePage(Page): + body = RichTextField(blank=True) + address = RichTextField(blank=True) + image = models.ForeignKey( + 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' + ) + + content_panels = Page.content_panels + [ + FieldPanel('body', classname="full"), + FieldPanel('address', classname="full"), + ImageChooserPanel('image'), + ] diff --git a/filmovy-festival/program/models.py b/filmovy-festival/program/models.py new file mode 100644 index 0000000..50916e3 --- /dev/null +++ b/filmovy-festival/program/models.py @@ -0,0 +1,53 @@ +from django.db import models + +from modelcluster.fields import ParentalKey + +from wagtail.core.models import Page, Orderable +from wagtail.core.fields import RichTextField +from wagtail.admin.edit_handlers import FieldPanel, InlinePanel +from wagtail.images.edit_handlers import ImageChooserPanel +from wagtail.search import index + + +class ProgramList(Page): + year = models.PositiveIntegerField(blank=True) + intro = RichTextField(blank=True) + image = models.ForeignKey( + 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' + ) + + parent_page_types = ['home.HomePage', ] + + content_panels = Page.content_panels + [ + FieldPanel('year'), + FieldPanel('intro', classname="full"), + ImageChooserPanel('image'), + ] + + +class ProgramEntry(Page): + date = models.DateTimeField("Datum a čas projekce") + place = models.CharField(max_length=64) + release_date = models.DateField("Datum vydání filmu") + director = models.CharField(max_length=64) + country = models.CharField(max_length=64) + annotation = RichTextField(blank=True) + image = models.ForeignKey( + 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' + ) + + parent_page_types = ['program.ProgramList', ] + + search_fields = Page.search_fields + [ + index.SearchField('annotation'), + ] + + content_panels = Page.content_panels + [ + FieldPanel('date'), + FieldPanel('place'), + FieldPanel('release_date'), + FieldPanel('director'), + FieldPanel('country'), + FieldPanel('annotation', classname="full"), + ImageChooserPanel('image'), + ] diff --git a/filmovy-festival/readme.md b/filmovy-festival/readme.md new file mode 100644 index 0000000..2edcd10 --- /dev/null +++ b/filmovy-festival/readme.md @@ -0,0 +1,25 @@ +# Filmový festival + +Webové stránky filmového festivalu zpravidla obsahují: + + - domovskou stránku s průvodním textem a hlavním "bannerem/obrázkem" festivalu + - statické stránky s informacemi o festivalu, pořadatelích nebo sponzorech + - program + +## homepage + - hlavní foto + - průvodní text + +## statické stránky + - formátovaný text + - obrázky + +## program + - datum a čas projekce + - místo projekce + - název filmu + - datum vydání filmu + - režie + - země + - anotace k filmu + - obrázek k filmu diff --git a/filmovy-festival/stranka/models.py b/filmovy-festival/stranka/models.py new file mode 100644 index 0000000..c70364c --- /dev/null +++ b/filmovy-festival/stranka/models.py @@ -0,0 +1,35 @@ +from django.db import models + +from modelcluster.fields import ParentalKey + +from wagtail.core.models import Page, Orderable +from wagtail.core.fields import RichTextField +from wagtail.admin.edit_handlers import FieldPanel, InlinePanel +from wagtail.images.edit_handlers import ImageChooserPanel +from wagtail.search import index + + +class StrankaPage(Page): + body = RichTextField(blank=True) + + search_fields = Page.search_fields + [ + index.SearchField('body'), + ] + + content_panels = Page.content_panels + [ + FieldPanel('body', classname="full"), + InlinePanel('gallery_images', label="Obrázky"), + ] + + +class StrankaPageGalleryImage(Orderable): + page = ParentalKey(StrankaPage, on_delete=models.CASCADE, related_name='gallery_images') + image = models.ForeignKey( + 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' + ) + caption = models.CharField(blank=True, max_length=250) + + panels = [ + ImageChooserPanel('image'), + FieldPanel('caption'), + ] diff --git a/showroom/catalog/models.py b/showroom/catalog/models.py new file mode 100644 index 0000000..572f948 --- /dev/null +++ b/showroom/catalog/models.py @@ -0,0 +1,61 @@ +from django.db import models + +from modelcluster.fields import ParentalKey + +from wagtail.core.models import Page, Orderable +from wagtail.core.fields import RichTextField +from wagtail.admin.edit_handlers import FieldPanel, InlinePanel +from wagtail.images.edit_handlers import ImageChooserPanel +from wagtail.search import index + + +class CategoryList(Page): + intro = RichTextField(blank=True) + image = models.ForeignKey( + 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' + ) + + parent_page_types = ['home.HomePage', ] + + content_panels = Page.content_panels + [ + FieldPanel('intro', classname="full"), + ImageChooserPanel('image'), + ] + + +class Product(Page): + price = models.PositiveIntegerField() + description = RichTextField(blank=True) + + def main_image(self): + gallery_item = self.gallery_images.first() + if gallery_item: + return gallery_item.image + else: + return None + + parent_page_types = ['catalog.CategoryList', ] + + search_fields = Page.search_fields + [ + index.SearchField('description'), + ] + + content_panels = Page.content_panels + [ + FieldPanel('price'), + FieldPanel('description', classname="full"), + InlinePanel('gallery_images', label="Obrázky"), + ] + + + +class ProductImage(Orderable): + page = ParentalKey(BlogPage, on_delete=models.CASCADE, related_name='product_images') + image = models.ForeignKey( + 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' + ) + caption = models.CharField(blank=True, max_length=250) + + panels = [ + ImageChooserPanel('image'), + FieldPanel('caption'), + ] diff --git a/showroom/models.py b/showroom/models.py new file mode 100644 index 0000000..e69de29 diff --git a/showroom/readme.md b/showroom/readme.md new file mode 100644 index 0000000..a8648a0 --- /dev/null +++ b/showroom/readme.md @@ -0,0 +1,19 @@ +# Showroom + +Webové stránky "showroom" zpravidla obsahují: + + - domovskou stránku s hlavním produktem (scoll page design) + - další stránky s informacemi o produktu (např. technické specifikace) + - katalog dalších produktů + +## statické stránky + - formátovaný text + - obrázky + +## katalog + - obrázky + - název + - popis + - kategorie produktu + - cena + - parametry (dle produktu) diff --git a/showroom/stranka/models.py b/showroom/stranka/models.py new file mode 100644 index 0000000..c70364c --- /dev/null +++ b/showroom/stranka/models.py @@ -0,0 +1,35 @@ +from django.db import models + +from modelcluster.fields import ParentalKey + +from wagtail.core.models import Page, Orderable +from wagtail.core.fields import RichTextField +from wagtail.admin.edit_handlers import FieldPanel, InlinePanel +from wagtail.images.edit_handlers import ImageChooserPanel +from wagtail.search import index + + +class StrankaPage(Page): + body = RichTextField(blank=True) + + search_fields = Page.search_fields + [ + index.SearchField('body'), + ] + + content_panels = Page.content_panels + [ + FieldPanel('body', classname="full"), + InlinePanel('gallery_images', label="Obrázky"), + ] + + +class StrankaPageGalleryImage(Orderable): + page = ParentalKey(StrankaPage, on_delete=models.CASCADE, related_name='gallery_images') + image = models.ForeignKey( + 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' + ) + caption = models.CharField(blank=True, max_length=250) + + panels = [ + ImageChooserPanel('image'), + FieldPanel('caption'), + ] diff --git a/veterinarni-klinika/aktuality/models.py b/veterinarni-klinika/aktuality/models.py new file mode 100644 index 0000000..e69de29 diff --git a/veterinarni-klinika/blog/models.py b/veterinarni-klinika/blog/models.py new file mode 100644 index 0000000..2a21b1c --- /dev/null +++ b/veterinarni-klinika/blog/models.py @@ -0,0 +1,55 @@ +from django.db import models + +from modelcluster.fields import ParentalKey + +from wagtail.core.models import Page, Orderable +from wagtail.core.fields import RichTextField +from wagtail.admin.edit_handlers import FieldPanel, InlinePanel +from wagtail.images.edit_handlers import ImageChooserPanel +from wagtail.search import index + + +class BlogIndexPage(Page): + intro = RichTextField(blank=True) + + content_panels = Page.content_panels + [ + FieldPanel('intro', classname="full") + ] + + +class BlogPage(Page): + date = models.DateField("Post date") + intro = models.CharField(max_length=250) + body = RichTextField(blank=True) + + def main_image(self): + gallery_item = self.gallery_images.first() + if gallery_item: + return gallery_item.image + else: + return None + + search_fields = Page.search_fields + [ + index.SearchField('intro'), + index.SearchField('body'), + ] + + content_panels = Page.content_panels + [ + FieldPanel('date'), + FieldPanel('intro'), + FieldPanel('body', classname="full"), + InlinePanel('gallery_images', label="Obrázky"), + ] + + +class BlogPageGalleryImage(Orderable): + page = ParentalKey(BlogPage, on_delete=models.CASCADE, related_name='gallery_images') + image = models.ForeignKey( + 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' + ) + caption = models.CharField(blank=True, max_length=250) + + panels = [ + ImageChooserPanel('image'), + FieldPanel('caption'), + ] diff --git a/veterinarni-klinika/home/models.py b/veterinarni-klinika/home/models.py new file mode 100644 index 0000000..d4e31b9 --- /dev/null +++ b/veterinarni-klinika/home/models.py @@ -0,0 +1,22 @@ +from django.db import models + +from modelcluster.fields import ParentalKey + +from wagtail.core.models import Page, Orderable +from wagtail.core.fields import RichTextField +from wagtail.images.edit_handlers import ImageChooserPanel +from wagtail.admin.edit_handlers import FieldPanel, InlinePanel + + +class HomePage(Page): + body = RichTextField(blank=True) + address = RichTextField(blank=True) + image = models.ForeignKey( + 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' + ) + + content_panels = Page.content_panels + [ + FieldPanel('body', classname="full"), + FieldPanel('address', classname="full"), + ImageChooserPanel('image'), + ] diff --git a/veterinarni-klinika/readme.md b/veterinarni-klinika/readme.md new file mode 100644 index 0000000..9e04cbf --- /dev/null +++ b/veterinarni-klinika/readme.md @@ -0,0 +1,27 @@ +# Veterinární klinika + +Webové stránky veterinární kliniky zpravidla obsahují: + + - domovskou stránku s průvodním textem a hlavním "bannerem/obrázkem" + kontakt / adresu kliniky + - statické stránky s dalšími informacemi o klinice: vybavení, služby, popis pracoviště + - aktuality - informace provozu kliniky, nedostupnosti lékaře, atp. + - blog o činnosti kliniky (např. úspěšné léčby/příběhy pacientů) + + +## stránky + - formátovaný text + - obrázky + +## aktuality + - datum + - text zprávy + +## blog + - datum + - text zápisu + - obrázky + +## homepage + - adresa + - hlavní foto diff --git a/veterinarni-klinika/stranka/models.py b/veterinarni-klinika/stranka/models.py new file mode 100644 index 0000000..c70364c --- /dev/null +++ b/veterinarni-klinika/stranka/models.py @@ -0,0 +1,35 @@ +from django.db import models + +from modelcluster.fields import ParentalKey + +from wagtail.core.models import Page, Orderable +from wagtail.core.fields import RichTextField +from wagtail.admin.edit_handlers import FieldPanel, InlinePanel +from wagtail.images.edit_handlers import ImageChooserPanel +from wagtail.search import index + + +class StrankaPage(Page): + body = RichTextField(blank=True) + + search_fields = Page.search_fields + [ + index.SearchField('body'), + ] + + content_panels = Page.content_panels + [ + FieldPanel('body', classname="full"), + InlinePanel('gallery_images', label="Obrázky"), + ] + + +class StrankaPageGalleryImage(Orderable): + page = ParentalKey(StrankaPage, on_delete=models.CASCADE, related_name='gallery_images') + image = models.ForeignKey( + 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' + ) + caption = models.CharField(blank=True, max_length=250) + + panels = [ + ImageChooserPanel('image'), + FieldPanel('caption'), + ]