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 HomePage(Page): body = RichTextField(blank=True) address = models.CharField(max_length=255, verbose_name="Adresa", blank=True, default='') mobile = models.CharField(max_length=24, verbose_name="Mobil", blank=True, default='') email = models.EmailField(max_length=64, verbose_name="E-mail", blank=True, null=True) map_link = models.URLField(max_length=128, verbose_name="Odkaz na mapu", blank=True, default='') content_panels = Page.content_panels + [ FieldPanel('body', classname="full"), FieldPanel('address'), FieldPanel('mobile'), FieldPanel('email'), FieldPanel('map_link'), InlinePanel('carousel_images', label="Obrázky"), ] search_fields = Page.search_fields + [ index.SearchField('body'), ] class CarouselImage(Orderable): page = ParentalKey(HomePage, on_delete=models.CASCADE, related_name='carousel_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'), ]