diff --git a/festival/settings/base.py b/festival/settings/base.py
index 4336641..a911ae3 100644
--- a/festival/settings/base.py
+++ b/festival/settings/base.py
@@ -48,6 +48,8 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
+ 'program',
+ 'galerie',
]
MIDDLEWARE = [
diff --git a/festival/static/css/festival.css b/festival/static/css/festival.css
index e69de29..a683c4a 100644
--- a/festival/static/css/festival.css
+++ b/festival/static/css/festival.css
@@ -0,0 +1,30 @@
+body {
+ background-color: #8c8c8c !important;
+}
+.left-menu {
+ background-color: #444444;
+ padding-top: 15px;
+ height: 100vh;
+ box-shadow: 0px 0px 20px #ffffff;
+}
+.left-menu a {
+ color: #ffffff;
+}
+.content h3 {
+ color: #ffffff;
+ padding: 15px;
+ margin-bottom: 10px;
+ background-color: #444444 ;
+ box-shadow: 0px 0px 20px #ffffff;
+}
+.content h2 {
+ color: #ffffff;
+ margin-bottom: 10px;
+ background-color: #444444;
+ font-size: 12px;
+}
+ul {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
\ No newline at end of file
diff --git a/festival/templates/base.html b/festival/templates/base.html
index 3b8d5a8..c55165e 100644
--- a/festival/templates/base.html
+++ b/festival/templates/base.html
@@ -19,22 +19,25 @@
{# Global stylesheets #}
+
{% block extra_css %}
{# Override this in templates to add extra stylesheets #}
{% endblock %}
-
- {% wagtailuserbar %}
-
- {% block content %}{% endblock %}
-
- {# Global javascript #}
-
-
- {% block extra_js %}
- {# Override this in templates to add extra javascript #}
- {% endblock %}
+
+
+
+
+ {% block content %}{% endblock %}
+
+
diff --git a/galerie/__init__.py b/galerie/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/galerie/admin.py b/galerie/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /dev/null
+++ b/galerie/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/galerie/apps.py b/galerie/apps.py
new file mode 100644
index 0000000..a69ea5a
--- /dev/null
+++ b/galerie/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class GalerieConfig(AppConfig):
+ name = 'galerie'
diff --git a/galerie/migrations/0001_initial.py b/galerie/migrations/0001_initial.py
new file mode 100644
index 0000000..bde61b5
--- /dev/null
+++ b/galerie/migrations/0001_initial.py
@@ -0,0 +1,44 @@
+# Generated by Django 3.1.4 on 2020-12-04 20:38
+
+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 = [
+ ('wagtailcore', '0059_apply_collection_ordering'),
+ ('wagtailimages', '0022_uploadedimage'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='GaleryPage',
+ 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='galerie.galerypage')),
+ ],
+ options={
+ 'ordering': ['sort_order'],
+ 'abstract': False,
+ },
+ ),
+ ]
diff --git a/galerie/migrations/0002_auto_20201204_2156.py b/galerie/migrations/0002_auto_20201204_2156.py
new file mode 100644
index 0000000..26564fc
--- /dev/null
+++ b/galerie/migrations/0002_auto_20201204_2156.py
@@ -0,0 +1,37 @@
+# Generated by Django 3.1.4 on 2020-12-04 20:56
+
+from django.db import migrations, models
+import django.db.models.deletion
+import modelcluster.fields
+import wagtail.core.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('wagtailcore', '0059_apply_collection_ordering'),
+ ('galerie', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='GaleryItems',
+ 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.RemoveField(
+ model_name='galerypage',
+ name='body',
+ ),
+ migrations.AlterField(
+ model_name='strankapagegalleryimage',
+ name='page',
+ field=modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='gallery_images', to='galerie.galeryitems'),
+ ),
+ ]
diff --git a/galerie/migrations/__init__.py b/galerie/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/galerie/models.py b/galerie/models.py
new file mode 100644
index 0000000..6b4d015
--- /dev/null
+++ b/galerie/models.py
@@ -0,0 +1,38 @@
+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 GaleryPage(Page):
+ pass
+
+
+class GaleryItems(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(GaleryItems, 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/galerie/templates/galerie/galery_items.html b/galerie/templates/galerie/galery_items.html
new file mode 100644
index 0000000..d406dd6
--- /dev/null
+++ b/galerie/templates/galerie/galery_items.html
@@ -0,0 +1,23 @@
+{% extends "base.html" %}
+ {% load wagtailcore_tags static wagtailimages_tags wagtailimages_tags %}
+ {% block body_class %}template-homepage{% endblock %}
+ {% block extra_css %}
+
+ {% endblock extra_css %}
+ {% block content %}
+
+
+
{{ page.title|richtext }}
+
+
+
{{ page.body|richtext }}
+
+ {% for item in page.gallery_images.all %}
+
+ {% image item.image fill-320x240 %}
+
+ {% endfor %}
+
+
+
+{% endblock content %}
\ No newline at end of file
diff --git a/galerie/tests.py b/galerie/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/galerie/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/galerie/views.py b/galerie/views.py
new file mode 100644
index 0000000..91ea44a
--- /dev/null
+++ b/galerie/views.py
@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.
diff --git a/home/templates/home/home_page.html b/home/templates/home/home_page.html
index db9e9b0..94054b8 100644
--- a/home/templates/home/home_page.html
+++ b/home/templates/home/home_page.html
@@ -5,17 +5,20 @@
{% block extra_css %}
-{% comment %}
-Delete the line below if you're just getting started and want to remove the welcome screen!
-{% endcomment %}
{% endblock extra_css %}
{% block content %}
-{% comment %}
-Delete the line below if you're just getting started and want to remove the welcome screen!
-{% endcomment %}
-{% include 'home/welcome_page.html' %}
+
+
+
Seznam filmů a promítaní
+
+
+
{% endblock content %}
diff --git a/media/images/babovresky.2e16d0ba.fill-400x200.jpg b/media/images/babovresky.2e16d0ba.fill-400x200.jpg
new file mode 100644
index 0000000..5235d88
Binary files /dev/null and b/media/images/babovresky.2e16d0ba.fill-400x200.jpg differ
diff --git a/media/images/babovresky.max-165x165.jpg b/media/images/babovresky.max-165x165.jpg
new file mode 100644
index 0000000..7e5af22
Binary files /dev/null and b/media/images/babovresky.max-165x165.jpg differ
diff --git a/media/images/letni_kino1.2e16d0ba.fill-320x240.jpg b/media/images/letni_kino1.2e16d0ba.fill-320x240.jpg
new file mode 100644
index 0000000..8d90f00
Binary files /dev/null and b/media/images/letni_kino1.2e16d0ba.fill-320x240.jpg differ
diff --git a/media/images/letni_kino1.max-165x165.jpg b/media/images/letni_kino1.max-165x165.jpg
new file mode 100644
index 0000000..de173af
Binary files /dev/null and b/media/images/letni_kino1.max-165x165.jpg differ
diff --git a/media/images/letni_kino3.2e16d0ba.fill-320x240.jpg b/media/images/letni_kino3.2e16d0ba.fill-320x240.jpg
new file mode 100644
index 0000000..7e87201
Binary files /dev/null and b/media/images/letni_kino3.2e16d0ba.fill-320x240.jpg differ
diff --git a/media/images/letni_kino3.max-165x165.jpg b/media/images/letni_kino3.max-165x165.jpg
new file mode 100644
index 0000000..7be6a8d
Binary files /dev/null and b/media/images/letni_kino3.max-165x165.jpg differ
diff --git a/media/images/letnikino2.2e16d0ba.fill-320x240.jpg b/media/images/letnikino2.2e16d0ba.fill-320x240.jpg
new file mode 100644
index 0000000..05ed8e0
Binary files /dev/null and b/media/images/letnikino2.2e16d0ba.fill-320x240.jpg differ
diff --git a/media/images/letnikino2.max-165x165.jpg b/media/images/letnikino2.max-165x165.jpg
new file mode 100644
index 0000000..19e8753
Binary files /dev/null and b/media/images/letnikino2.max-165x165.jpg differ
diff --git a/media/images/plus.max-165x165.png b/media/images/plus.max-165x165.png
new file mode 100644
index 0000000..e005b73
Binary files /dev/null and b/media/images/plus.max-165x165.png differ
diff --git a/media/images/rychle.2e16d0ba.fill-400x200.jpg b/media/images/rychle.2e16d0ba.fill-400x200.jpg
new file mode 100644
index 0000000..4cc282c
Binary files /dev/null and b/media/images/rychle.2e16d0ba.fill-400x200.jpg differ
diff --git a/media/images/rychle.max-165x165.jpg b/media/images/rychle.max-165x165.jpg
new file mode 100644
index 0000000..6f24261
Binary files /dev/null and b/media/images/rychle.max-165x165.jpg differ
diff --git a/media/original_images/babovresky.jpg b/media/original_images/babovresky.jpg
new file mode 100644
index 0000000..4b81d91
Binary files /dev/null and b/media/original_images/babovresky.jpg differ
diff --git a/media/original_images/letni_kino1.jpg b/media/original_images/letni_kino1.jpg
new file mode 100644
index 0000000..28a26b8
Binary files /dev/null and b/media/original_images/letni_kino1.jpg differ
diff --git a/media/original_images/letni_kino3.jpg b/media/original_images/letni_kino3.jpg
new file mode 100644
index 0000000..d1e80f9
Binary files /dev/null and b/media/original_images/letni_kino3.jpg differ
diff --git a/media/original_images/letnikino2.jpg b/media/original_images/letnikino2.jpg
new file mode 100644
index 0000000..52228d8
Binary files /dev/null and b/media/original_images/letnikino2.jpg differ
diff --git a/media/original_images/plus.png b/media/original_images/plus.png
new file mode 100644
index 0000000..728dee4
Binary files /dev/null and b/media/original_images/plus.png differ
diff --git a/media/original_images/rychle.jpg b/media/original_images/rychle.jpg
new file mode 100644
index 0000000..2f80e39
Binary files /dev/null and b/media/original_images/rychle.jpg differ
diff --git a/program/__init__.py b/program/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/program/admin.py b/program/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /dev/null
+++ b/program/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/program/apps.py b/program/apps.py
new file mode 100644
index 0000000..7e27946
--- /dev/null
+++ b/program/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class ProgramConfig(AppConfig):
+ name = 'program'
diff --git a/program/migrations/0001_initial.py b/program/migrations/0001_initial.py
new file mode 100644
index 0000000..6876e7f
--- /dev/null
+++ b/program/migrations/0001_initial.py
@@ -0,0 +1,36 @@
+# Generated by Django 3.1.4 on 2020-12-04 20:38
+
+from django.db import migrations, models
+import django.db.models.deletion
+import wagtail.core.fields
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ('wagtailcore', '0059_apply_collection_ordering'),
+ ('wagtailimages', '0022_uploadedimage'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='ProgramPage',
+ 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')),
+ ('date', models.DateTimeField(verbose_name='Datum a čas projekce')),
+ ('place', models.CharField(max_length=64)),
+ ('release_date', models.DateField(verbose_name='Datum vydání filmu')),
+ ('year', models.PositiveIntegerField(blank=True)),
+ ('autor', models.CharField(max_length=64)),
+ ('country', models.CharField(max_length=64)),
+ ('annotation', wagtail.core.fields.RichTextField(blank=True)),
+ ('image', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.image')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ bases=('wagtailcore.page',),
+ ),
+ ]
diff --git a/program/migrations/0002_auto_20201204_2156.py b/program/migrations/0002_auto_20201204_2156.py
new file mode 100644
index 0000000..c64be05
--- /dev/null
+++ b/program/migrations/0002_auto_20201204_2156.py
@@ -0,0 +1,67 @@
+# Generated by Django 3.1.4 on 2020-12-04 20:56
+
+from django.db import migrations, models
+import django.db.models.deletion
+import wagtail.core.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('wagtailcore', '0059_apply_collection_ordering'),
+ ('wagtailimages', '0022_uploadedimage'),
+ ('program', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='programpage',
+ name='annotation',
+ ),
+ migrations.RemoveField(
+ model_name='programpage',
+ name='autor',
+ ),
+ migrations.RemoveField(
+ model_name='programpage',
+ name='country',
+ ),
+ migrations.RemoveField(
+ model_name='programpage',
+ name='date',
+ ),
+ migrations.RemoveField(
+ model_name='programpage',
+ name='image',
+ ),
+ migrations.RemoveField(
+ model_name='programpage',
+ name='place',
+ ),
+ migrations.RemoveField(
+ model_name='programpage',
+ name='release_date',
+ ),
+ migrations.RemoveField(
+ model_name='programpage',
+ name='year',
+ ),
+ migrations.CreateModel(
+ name='ProgramItems',
+ 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')),
+ ('date', models.DateTimeField(verbose_name='Datum a čas projekce')),
+ ('place', models.CharField(max_length=64)),
+ ('release_date', models.DateField(verbose_name='Datum vydání filmu')),
+ ('year', models.PositiveIntegerField(blank=True)),
+ ('autor', models.CharField(max_length=64)),
+ ('country', models.CharField(max_length=64)),
+ ('annotation', wagtail.core.fields.RichTextField(blank=True)),
+ ('image', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.image')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ bases=('wagtailcore.page',),
+ ),
+ ]
diff --git a/program/migrations/__init__.py b/program/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/program/models.py b/program/models.py
new file mode 100644
index 0000000..93c7be2
--- /dev/null
+++ b/program/models.py
@@ -0,0 +1,39 @@
+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 ProgramPage(Page):
+ pass
+
+
+class ProgramItems(Page):
+ date = models.DateTimeField("Datum a čas projekce")
+ place = models.CharField(max_length=64)
+ release_date = models.DateField("Datum vydání filmu")
+ year = models.PositiveIntegerField(blank=True)
+ autor = models.CharField(max_length=64)
+ country = models.CharField(max_length=64)
+ annotation = RichTextField(blank=True)
+ image = models.ForeignKey(
+ 'wagtailimages.Image', on_delete=models.PROTECT, related_name='+'
+ )
+ search_fields = Page.search_fields + [
+ index.SearchField('annotation'),
+ ]
+
+ content_panels = Page.content_panels + [
+ FieldPanel('date'),
+ FieldPanel('place'),
+ FieldPanel('release_date'),
+ FieldPanel('year'),
+ FieldPanel('autor'),
+ FieldPanel('country'),
+ FieldPanel('annotation', classname="full"),
+ ImageChooserPanel('image'),
+ ]
\ No newline at end of file
diff --git a/program/templates/program/program_page.html b/program/templates/program/program_page.html
new file mode 100644
index 0000000..5c4ecec
--- /dev/null
+++ b/program/templates/program/program_page.html
@@ -0,0 +1,34 @@
+{% extends "base.html" %}
+ {% load wagtailcore_tags static wagtailimages_tags wagtailimages_tags %}
+ {% block body_class %}template-homepage{% endblock %}
+ {% block extra_css %}
+
+ {% endblock extra_css %}
+ {% block content %}
+
+
+
Seznam filmů a promítaní
+
+ {% for item in page.get_children %}
+
+
+ {% image item.specific.image class="img-fluid" fill-400x200 %}
+
+
{{ item.title }}
+
{{ item.annotation }}
+
+
+ - {{ item.specific.annotation|richtext }}
+ - {{ item.specific.date }}
+ - {{ item.specific.place }}
+ - {{ item.specific.release_date }}
+ - {{ item.specific.autor }}
+ - {{ item.specific.country }}
+
+
+
+ {% endfor %}
+
+
+
+{% endblock content %}
\ No newline at end of file
diff --git a/program/tests.py b/program/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/program/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/program/views.py b/program/views.py
new file mode 100644
index 0000000..91ea44a
--- /dev/null
+++ b/program/views.py
@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.