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.