diff --git a/blog/settings/base.py b/blog/settings/base.py index 95f0f94..c7e4305 100644 --- a/blog/settings/base.py +++ b/blog/settings/base.py @@ -49,6 +49,7 @@ INSTALLED_APPS = [ 'django.contrib.messages', 'django.contrib.staticfiles', 'zapisnik', + 'stranky', ] MIDDLEWARE = [ diff --git a/requirements.txt b/requirements.txt index 7b260ab..699e23d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ Django>=3.1,<3.2 -wagtail>=2.10,<2.11 +wagtail>=2.10,<2.12 + diff --git a/stranky/__init__.py b/stranky/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/stranky/admin.py b/stranky/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/stranky/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/stranky/apps.py b/stranky/apps.py new file mode 100644 index 0000000..0220a40 --- /dev/null +++ b/stranky/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class StrankyConfig(AppConfig): + name = 'stranky' diff --git a/stranky/migrations/0001_initial.py b/stranky/migrations/0001_initial.py new file mode 100644 index 0000000..228b1f4 --- /dev/null +++ b/stranky/migrations/0001_initial.py @@ -0,0 +1,44 @@ +# Generated by Django 3.1.3 on 2020-11-06 10:27 + +from django.db import migrations, models +import django.db.models.deletion +import modelcluster.fields +import wagtail.core.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('wagtailimages', '0022_uploadedimage'), + ('wagtailcore', '0059_apply_collection_ordering'), + ] + + operations = [ + migrations.CreateModel( + name='StrankaPage', + 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')), + ('body', wagtail.core.fields.RichTextField(blank=True)), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='StrankaPageGalleryImage', + 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='stranky.strankapage')), + ], + options={ + 'ordering': ['sort_order'], + 'abstract': False, + }, + ), + ] diff --git a/stranky/migrations/__init__.py b/stranky/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/stranky/models.py b/stranky/models.py new file mode 100644 index 0000000..2d5c0fe --- /dev/null +++ b/stranky/models.py @@ -0,0 +1,33 @@ +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'), + ] \ No newline at end of file diff --git a/stranky/stanka_page.html b/stranky/stanka_page.html new file mode 100644 index 0000000..f87c078 --- /dev/null +++ b/stranky/stanka_page.html @@ -0,0 +1,20 @@ +{% extends "base.html" %} + +{% load wagtailcore_tags wagtailimages_tags %} + +{% block body_class %}template-blogpage{% endblock %} + +{% block content %} +

{{ page.title }}

+ {{ page.body|richtext }} + + {% for item in page.gallery_images.all %} +
+ {% image item.image fill-320x240 %} +

{{ item.caption }}

+
+ {% endfor %} +
+ + +{% endblock %} \ No newline at end of file diff --git a/stranky/tests.py b/stranky/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/stranky/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/stranky/views.py b/stranky/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/stranky/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.