@ -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. |