Browse Source

konecne upravy

master
petr 5 years ago
parent
commit
a3788f3b1b
  1. 0
      tip/__init__.py
  2. 3
      tip/admin.py
  3. 5
      tip/apps.py
  4. 92
      tip/models.py
  5. 38
      tip/templates/tip/tip_index_page.html
  6. 35
      tip/templates/tip/tip_page.html
  7. 3
      tip/tests.py
  8. 3
      tip/views.py
  9. 1
      ubytovani/settings/base.py
  10. 7
      ubytovani/static/css/ubytovani.css
  11. 6
      ubytovani/templates/base.html

0
tip/__init__.py

3
tip/admin.py

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

5
tip/apps.py

@ -0,0 +1,5 @@
from django.apps import AppConfig
class TipConfig(AppConfig):
name = 'tip'

92
tip/models.py

@ -0,0 +1,92 @@
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 TipIndexPage(Page):
intro = RichTextField(blank=True)
content_panels = Page.content_panels + [
FieldPanel('intro', classname="full")
]
class TipPage(Page):
date = models.DateField("Post date")
intro = models.CharField(max_length=250)
body = RichTextField(blank=True)
def main_image(self):
gallery_item = self.gallery_images.first()
if gallery_item:
return gallery_item.image
else:
return None
search_fields = Page.search_fields + [
index.SearchField('intro'),
index.SearchField('body'),
]
content_panels = Page.content_panels + [
FieldPanel('date'),
FieldPanel('intro'),
FieldPanel('body', classname="full"),
InlinePanel('gallery_images', label="Obrázky"),
]
class TipPageGalleryImage(Orderable):
page = ParentalKey(TipPage, 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'),
]
class TipPage(Page):
date = models.DateField("Post date")
intro = models.CharField(max_length=250)
body = RichTextField(blank=True)
def main_image(self):
gallery_item = self.gallery_images.first()
if gallery_item:
return gallery_item.image
else:
return None
search_fields = Page.search_fields + [
index.SearchField('intro'),
index.SearchField('body'),
]
content_panels = Page.content_panels + [
FieldPanel('date'),
FieldPanel('intro'),
FieldPanel('body', classname="full"),
InlinePanel('gallery_images', label="Obrázky"),
]
class TipPageGalleryImage(Orderable):
page = ParentalKey(TipPage, 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'),
]

38
tip/templates/tip/tip_index_page.html

@ -0,0 +1,38 @@
{% extends "base.html" %}
{% load wagtailcore_tags wagtailimages_tags static %}
{% block body_class %}template-blogindexpage{% endblock %}
{% block content %}
<h1>{{ page.title }}</h1>
<div class="intro">{{ page.intro|richtext }}</div>
{% for post in page.get_children %}
{% with post=post.specific %}
<div class="card mb-3">
<div class="row no-gutters">
<div class="col-md-4">
{% with post.main_image as main_image %}
{% if main_image %}
{% image main_image class="card-img" fill-400x150 %}
{% else %}
<img src="{% static "img/blank-image.jpg" %}" class="card-img" style="height: 150px;" alt="blank image">
{% endif %}
{% endwith %}
</div>
<div class="col-md-8">
<div class="card-body">
<h5 class="card-title"><a href="{% pageurl post %}">{{ post.title }}</a></h5>
<p class="card-text">{{ post.intro }}</p>
<p class="card-text"><small class="text-muted">{{ post.date }}</small></p>
</div>
</div>
</div>
</div>
{% endwith %}
{% endfor %}
{% endblock %}

35
tip/templates/tip/tip_page.html

@ -0,0 +1,35 @@
{% extends "base.html" %}
{% load wagtailcore_tags wagtailimages_tags %}
{% block body_class %}template-blogpage{% endblock %}
{% block content %}
<h1>{{ page.title }}</h1>
<div class="card mb-3">
<div class="row no-gutters">
<div class="col-md-4">
{% for item in page.gallery_images.all %}
<div style="float: left; margin: 10px">
{% image item.image fill-320x240 %}
<p>{{ item.caption }}</p>
</div>
{% endfor %}
</div>
<div class="col-md-8">
<div class="card-body">
<div class="intro">{{ page.intro }}</div>
{{ page.body|richtext }}
<p class="meta">{{ page.date }}</p>
</div>
</div>
</div>
</div>
<p><a href="{{ page.get_parent.url }}">Return to blog</a></p>
{% endblock %}

3
tip/tests.py

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

3
tip/views.py

@ -0,0 +1,3 @@
from django.shortcuts import render
# Create your views here.

1
ubytovani/settings/base.py

@ -50,6 +50,7 @@ INSTALLED_APPS = [
'django.contrib.staticfiles',
'stranky',
'galeri',
'tip',
]
MIDDLEWARE = [

7
ubytovani/static/css/ubytovani.css

@ -3,7 +3,7 @@ main > .container {
}
.footer {
background-color: #f5f5f5;
background-color: #f5f5f5d8;
}
.footer > .container {
@ -13,4 +13,9 @@ main > .container {
code {
font-size: 80%;
}
img{
width: 400px;
height: 300px;
}

6
ubytovani/templates/base.html

@ -40,13 +40,13 @@
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="/kontakty/">Home <span class="sr-only">(current)</span></a>
<a class="nav-link" href="/kontakty/">Kontakty <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="/kontakty/">Link</a>
<a class="nav-link" href="/tipynavýlety/">Tipy na Výlety</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/galerie/">Link</a>
<a class="nav-link" href="/galerie/">Galerie</a>
</li>
</ul>
<form class="form-inline mt-2 mt-md-0">

Loading…
Cancel
Save