@ -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; |
||||
|
} |
@ -0,0 +1,3 @@ |
|||||
|
from django.contrib import admin |
||||
|
|
||||
|
# Register your models here. |
@ -0,0 +1,5 @@ |
|||||
|
from django.apps import AppConfig |
||||
|
|
||||
|
|
||||
|
class GalerieConfig(AppConfig): |
||||
|
name = 'galerie' |
@ -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, |
||||
|
}, |
||||
|
), |
||||
|
] |
@ -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'), |
||||
|
), |
||||
|
] |
@ -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'), |
||||
|
] |
@ -0,0 +1,23 @@ |
|||||
|
{% extends "base.html" %} |
||||
|
{% load wagtailcore_tags static wagtailimages_tags wagtailimages_tags %} |
||||
|
{% block body_class %}template-homepage{% endblock %} |
||||
|
{% block extra_css %} |
||||
|
<link rel="stylesheet" href="{% static 'css/welcome_page.css' %}"> |
||||
|
{% endblock extra_css %} |
||||
|
{% block content %} |
||||
|
<div class="row"> |
||||
|
<div class="col-12"> |
||||
|
<h3 style="margin-bottom: 0px;"> {{ page.title|richtext }} </h3> |
||||
|
<div class="row"> |
||||
|
<div class="col-12"> |
||||
|
<h2> {{ page.body|richtext }} </h2> |
||||
|
</div> |
||||
|
{% for item in page.gallery_images.all %} |
||||
|
<div class="col-6" style="padding: 10px"> |
||||
|
{% image item.image fill-320x240 %} |
||||
|
</div> |
||||
|
{% endfor %} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endblock content %} |
@ -0,0 +1,3 @@ |
|||||
|
from django.test import TestCase |
||||
|
|
||||
|
# Create your tests here. |
@ -0,0 +1,3 @@ |
|||||
|
from django.shortcuts import render |
||||
|
|
||||
|
# Create your views here. |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 588 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 620 KiB |
@ -0,0 +1,3 @@ |
|||||
|
from django.contrib import admin |
||||
|
|
||||
|
# Register your models here. |
@ -0,0 +1,5 @@ |
|||||
|
from django.apps import AppConfig |
||||
|
|
||||
|
|
||||
|
class ProgramConfig(AppConfig): |
||||
|
name = 'program' |
@ -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',), |
||||
|
), |
||||
|
] |
@ -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',), |
||||
|
), |
||||
|
] |
@ -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'), |
||||
|
] |
@ -0,0 +1,34 @@ |
|||||
|
{% extends "base.html" %} |
||||
|
{% load wagtailcore_tags static wagtailimages_tags wagtailimages_tags %} |
||||
|
{% block body_class %}template-homepage{% endblock %} |
||||
|
{% block extra_css %} |
||||
|
<link rel="stylesheet" href="{% static 'css/welcome_page.css' %}"> |
||||
|
{% endblock extra_css %} |
||||
|
{% block content %} |
||||
|
<div class="row"> |
||||
|
<div class="col-12"> |
||||
|
<h3> Seznam filmů a promítaní </h3> |
||||
|
<div class="row"> |
||||
|
{% for item in page.get_children %} |
||||
|
<div class="col-4"> |
||||
|
<div class="card" style="width: 100%;"> |
||||
|
{% image item.specific.image class="img-fluid" fill-400x200 %} |
||||
|
<div class="card-body"> |
||||
|
<h5 class="card-title"> {{ item.title }} </h5> |
||||
|
<p class="card-text"> {{ item.annotation }} </p> |
||||
|
</div> |
||||
|
<ul class="list-group list-group-flush"> |
||||
|
<li class="list-group-item">{{ item.specific.annotation|richtext }}</li> |
||||
|
<li class="list-group-item">{{ item.specific.date }}</li> |
||||
|
<li class="list-group-item">{{ item.specific.place }}</li> |
||||
|
<li class="list-group-item">{{ item.specific.release_date }}</li> |
||||
|
<li class="list-group-item">{{ item.specific.autor }}</li> |
||||
|
<li class="list-group-item">{{ item.specific.country }}</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endfor %} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{% endblock content %} |
@ -0,0 +1,3 @@ |
|||||
|
from django.test import TestCase |
||||
|
|
||||
|
# Create your tests here. |
@ -0,0 +1,3 @@ |
|||||
|
from django.shortcuts import render |
||||
|
|
||||
|
# Create your views here. |