From c348d0d071aa1c84f7de9b408018ffdac4688aa8 Mon Sep 17 00:00:00 2001 From: "tomas.patolan" Date: Fri, 23 Oct 2020 11:09:48 +0200 Subject: [PATCH] =?UTF-8?q?zm=C4=9Bna=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0003_blogpagegalleryimage.py | 30 +++++++++++++++++++ zapisnik/models.py | 22 ++++++++++++-- 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 zapisnik/migrations/0003_blogpagegalleryimage.py diff --git a/zapisnik/migrations/0003_blogpagegalleryimage.py b/zapisnik/migrations/0003_blogpagegalleryimage.py new file mode 100644 index 0000000..7ab47b3 --- /dev/null +++ b/zapisnik/migrations/0003_blogpagegalleryimage.py @@ -0,0 +1,30 @@ +# Generated by Django 3.0.6 on 2020-10-23 09:07 + +from django.db import migrations, models +import django.db.models.deletion +import modelcluster.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailimages', '0022_uploadedimage'), + ('zapisnik', '0002_blogpage'), + ] + + operations = [ + migrations.CreateModel( + name='BlogPageGalleryImage', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), + ('caption', models.CharField(blank=True, max_length=250)), + ('image', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='wagtailimages.Image')), + ('page', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='gallery_images', to='zapisnik.BlogPage')), + ], + options={ + 'ordering': ['sort_order'], + 'abstract': False, + }, + ), + ] diff --git a/zapisnik/models.py b/zapisnik/models.py index 6d27806..e0d9bc2 100644 --- a/zapisnik/models.py +++ b/zapisnik/models.py @@ -1,10 +1,13 @@ from django.db import models -# Create your models here. +# New imports added for ParentalKey, Orderable, InlinePanel, ImageChooserPanel -from wagtail.core.models import Page +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 +from wagtail.admin.edit_handlers import FieldPanel, InlinePanel +from wagtail.images.edit_handlers import ImageChooserPanel from wagtail.search import index @@ -30,4 +33,17 @@ class BlogPage(Page): FieldPanel('date'), FieldPanel('intro'), FieldPanel('body', classname="full"), + InlinePanel('gallery_images', label="Gallery images"), ] + +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'), + ] \ No newline at end of file