diff --git a/czech_inspirational/models.py b/czech_inspirational/models.py index b92889df8eeeace16da10fa9bdb9bebc3bc3ad5a..5645426744372c15e2370d6e3c3f7dbf42f6d9ce 100644 --- a/czech_inspirational/models.py +++ b/czech_inspirational/models.py @@ -15,7 +15,7 @@ from shared.models import ( ) from shared.utils import subscribe_to_newsletter from tuning import admin_help -from uniweb.constants import RICH_TEXT_FEATURES +from shared.const import RICH_TEXT_DEFAULT_FEATURES class CzechInspirationalHomePage( @@ -166,9 +166,9 @@ class CzechInspirationalChapterPage( ### FIELDS number = models.IntegerField("číslo kapitoly", default=0) - text = RichTextField("text", blank=True, features=RICH_TEXT_FEATURES) + text = RichTextField("text", blank=True, features=RICH_TEXT_DEFAULT_FEATURES) extra_text = RichTextField( - "extra modrý blok", blank=True, features=RICH_TEXT_FEATURES + "extra modrý blok", blank=True, features=RICH_TEXT_DEFAULT_FEATURES ) author = models.CharField("autor", max_length=250, blank=True, null=True) image = models.ForeignKey( diff --git a/district/models.py b/district/models.py index 04ae6b615286b25b6213108b7ecf04d1de035f8e..b7271cd8efb4bbeee3a0aac9e3a384afb0d99207 100644 --- a/district/models.py +++ b/district/models.py @@ -61,7 +61,7 @@ from . import blocks from .forms import JekyllImportForm CONTENT_BLOCKS = DEFAULT_CONTENT_BLOCKS + [ - ("chart", ChartBlock(template="district/blocks/chart.html")), + ("chart", ChartBlock()), ("related", blocks.ArticlesBlock()), ("related_links", blocks.ArticleLinksBlock()), ] diff --git a/district/templates/district/blocks/chart.html b/district/templates/district/blocks/chart.html deleted file mode 100644 index a5f06870552f29dd6851ec783fca518fefcb3b46..0000000000000000000000000000000000000000 --- a/district/templates/district/blocks/chart.html +++ /dev/null @@ -1,13 +0,0 @@ -{% load wagtailcore_tags %} -{% load static %} - -<script src="{% static "shared/vendor/chart.js/chart.umd.4.2.0.js" %}"></script> - -<div class="py-4"> - <canvas - class="lg:h-120 lg:w-auto w-full mx-auto" - id="{{ block.id }}" - ></canvas> -</div> - -{% include "shared/chart_script_snippet.html" with value=value block_id=block.id %} diff --git a/district/templates/district/district_election_campaign_page.html b/district/templates/district/district_election_campaign_page.html deleted file mode 100644 index 167ef70af869bc4a594233ba804b4e90a46fe370..0000000000000000000000000000000000000000 --- a/district/templates/district/district_election_campaign_page.html +++ /dev/null @@ -1,184 +0,0 @@ -{% extends "district/base.html" %} -{% load wagtailcore_tags wagtailimages_tags shared_filters %} - -{% block subheader %} - {% if page.hero_image %} - {% image page.hero_image fill-1920x800-c75 jpegquality-80 as bg_img %} - {% else %} - {% image page.root_page.fallback_image fill-1920x800-c75 jpegquality-80 as bg_img %} - {% endif %} - - <header class="hero hero--image text-center md:text-left {% if page.root_election_page.campaigns|length > 1 %}pb-0 pt-16{% else %}py-16{% endif %}" style="--image-url: url({{ bg_img.full_url }})"> - <div class="container container--default grid lg:grid-cols-7 gap-4 items-center text-center lg:text-left"> - <div class="lg:col-span-3 order-2 lg:order-1"> - {% if page.number %} - <div class="flag bg-violet-400 text-white head-alt-base mb-6"> - Volte č. {{ page.number }} - </div> - {% endif %} - {% if page.hero_headline %} - <h2 class="head-xs md:head-base text-shadow-lg mb-2"> - {{ page.root_election_page.title }} - </h2> - <h1 class="head-alt-lg md:head-alt-xl text-shadow-lg"> - {{ page.hero_headline|default:page.title }} - </h1> - {% else %} - <h1 class="head-alt-lg md:head-alt-xl text-shadow-lg"> - {{ page.root_election_page.title }} - </h1> - {% endif %} - {% if page.hero_motto %} - <h2 class="head-xs text-shadow-lg mt-2"> - {{ page.hero_motto }} - </h2> - {% endif %} - - <div class="mt-4 md:mt-8 space-y-4"> - {% for block in page.hero_cta_buttons %} - {% include_block block with block_id=block.id %} - {% endfor %} - </div> - </div> - <div class="lg:col-span-4 order-1 lg:order-2"> - {% if page.hero_candidates_image %} - {% image page.hero_candidates_image width-490 as candidates_img %} - <img src="{{ candidates_img.url }}" class="h-32 lg:h-80 m-auto object-contain" alt="Kandidáti"> - {% endif %} - </div> - </div> - {% if page.root_election_page.campaigns|length > 1 %} - <div class="container container--default text-white pb-16"> - <hr class="hr--big opacity-25" /> - <div class="leading-loose grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 text-shadow-lg text-base md:text-sm"> - {% for campaign in page.root_election_page.campaigns %} - <span><a href="{% pageurl campaign %}" class="{% if campaign.pk == page.pk %}font-bold{% endif %}">{{ campaign.title }}</a></span> - {% endfor %} - </div> - </div> - {% endif %} - </header> -{% endblock subheader %} - -{% block container %} - <div class="__js-root"> - <ui-view-provider - :initial="{candidates: true, program: false}" :sync-location="true" v-slot="{ isCurrentView, toggleView }" - > - <div class="container container--default pt-8 lg:py-24 space-y-8 lg:space-y-16"> - {% if page.content %} - <section class="space-y-8"> - {% for block in page.content %} - {% include_block block %} - {% endfor %} - </section> - {% endif %} - - <section> - {% if page.program_points %} - <div class="text-center"> - <div class="switch"> - <a - @click="toggleView('candidates')" - class="switch__item" - :class="{'switch__item--active': isCurrentView('candidates')}" - > - Kandidáti - </a> - <a - @click="toggleView('program')" - class="switch__item" - :class="{'switch__item--active': isCurrentView('program')}" - > - Program - </a> - </div> - </div> - {% endif %} - - <template v-if="isCurrentView('candidates')"> - <h1 class="head-alt-md text-center py-8 lg:pt-24 lg:pb-8">{{ page.candidate_list_title|default:"Kandidátní listina" }}</h1> - - {% for block in self.candidates %} - {% include_block block %} - {% endfor %} - </template> - - {% if page.program_points %} - <template v-if="isCurrentView('program')"> - <h1 - class="head-alt-md text-center py-8 lg:pt-24 {% if not page.show_program_points_inline %}lg:pb-8{% else %}pb-0{% endif %}" - >{{ page.program_point_list_title|default:"Volební program" }}</h1> - {% if page.show_program_points_inline %} - {% for program_point in page.program_points %} - <h2 class="head-alt-md mb-2 mt-8"> - {{ program_point.title }} - </h2> - <p - class="font-bold text-lg leading-normal {% if program_point.guarantor is not none %}mb-3{% else %}mb-5{% endif %}" - > - {{ program_point.perex }} - </p> - - {% if program_point.guarantor is not none %} - <p class="mb-5 text-grey-300"> - Garant: - <a - href="{{ program_point.guarantor.url }}" - >{{ program_point.guarantor }}</a> - </p> - {% endif %} - - {% for block in program_point.content %} - {% include_block block %} - {% endfor %} - {% endfor %} - {% else %} - <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> - {% for program_point in page.program_points %} - <div class="card card--hoveractive"> - <a href="{% pageurl program_point %}"> - {% image program_point.image width-357 as list_image %} - <img src="{{ list_image.url }}" alt="{{ program_point.title }}" class="w-full h-48 object-cover"> - </a> - <div class="card__body p-4"> - <h1 class="card-headline mb-2"> - <a href="{% pageurl program_point %}"> - {{ program_point.title }} - </a> - </h1> - <p class="card-body-text"> - {{ program_point.perex }} - </p> - </div> - </div> - {% endfor %} - </div> - {% endif %} - </template> - {% endif %} - </section> - - <section class="flex flex-col lg:flex-row lg:space-x-8"> - {% if page.post_election_strategy %} - <a - href="{{ page.post_election_strategy.url }}" - class="super-button bg-grey-125 text-black lg:w-full container-padding--zero lg:container-padding--auto" - > - <span class="super-button__body">Povolební strategie</span> - <i class="super-button__icon ico--strategy"></i> - </a> - {% endif %} - <a - href="{% firstof page.campaign_funding_info page.campaign_page.campaign_funding_info 'https://wiki.pirati.cz/ft/start' %}" - class="super-button bg-black text-white lg:w-full container-padding--zero lg:container-padding--auto" - > - <span class="super-button__body">Financování kampaně</span> - <i class="super-button__icon ico--calculator"></i> - </a> - </section> - </div> - </ui-view-provider> - </div> - -{% endblock %} diff --git a/district/templates/district/district_election_program_page.html b/district/templates/district/district_election_program_page.html deleted file mode 100644 index 8e8fb722cb590188cd6b3628aadd5e799d4d4a7c..0000000000000000000000000000000000000000 --- a/district/templates/district/district_election_program_page.html +++ /dev/null @@ -1,38 +0,0 @@ -{% extends "district/base.html" %} -{% load wagtailcore_tags wagtailimages_tags shared_filters %} - -{% block content %} - <div class="lg:flex lg:space-x-8 xl:space-x-16"> - <section - {% if page.guarantor is not none %} - class="lg:w-3/5 xl:w-2/3" - {% endif %} - > - <h1 class="head-alt-md md:head-alt-lg max-w-5xl mb-4"> - {{ page.title }} - </h1> - <p class="font-bold text-lg leading-normal mb-8"> - {{ page.perex }} - </p> - - {% for block in page.content %} - {% include_block block with block_id=block.id %} - {% endfor %} - </section> - - {% if page.guarantor is not none %} - <section class="pt-8 lg:w-2/5 xl:w-1/3 lg:pt-0"> - <div class="lg:card lg:elevation-10"> - <div class="lg:card__body"> - <h2 class="head-heavy-sm mb-4"><a href="{% pageurl page.root_election_page %}">{{ page.root_election_page.title }}</a></h2> - - {% include "shared/person_badge_snippet.html" with person_page=page.guarantor title="Garant bodu" %} - <hr /> - - {% include "district/includes/election_subpage_sidebar_content.html" %} - </div> - </div> - </section> - {% endif %} - </div> -{% endblock content %} diff --git a/district/templates/district/district_interactive_program_page.html b/district/templates/district/district_interactive_program_page.html deleted file mode 100644 index 065b10f2d1c1536ead789d52b0f604170842a1b9..0000000000000000000000000000000000000000 --- a/district/templates/district/district_interactive_program_page.html +++ /dev/null @@ -1,165 +0,0 @@ -{% extends "district/base.html" %} -{% load wagtailcore_tags wagtailimages_tags shared_filters static %} - -{% block styles %} - <link - rel="stylesheet" - href="{% static 'district/fonts/bebas-neue/style.css' %}" - > - <link - rel="stylesheet" - href="{% static 'district/css/jquery.modal.css' %}" - > - <link - rel="stylesheet" - href="{% static 'district/css/mast-share.css' %}" - > - <link - rel="stylesheet" - href="{% static 'district/css/custom.css' %}" - > - - <script - type="text/javascript" - src="{% static 'district/js/jquery-3.1.0.min.js' %}" - ></script> - <script - type="text/javascript" - src="{% static 'district/js/mast-share.js' %}" - ></script> - <script - type="text/javascript" - src="{% static 'district/js/js.cookie.min.js' %}" - ></script> -{% endblock %} - -{% block content %} - <div class="lg:flex lg:mt-8 space-y-16 lg:space-y-0 lg:space-x-8 xl:space-x-16 mb-5"> - <section id="content"> - <header> - <h1 itemprop="headline" class="head-alt-md md:head-alt-lg max-w-5xl mb-8"> - {{ page.title }} - </h1> - </header> - - <p> - {{ page.perex }} - </p> - - <noscript> - <section id="no-js-program"> - <br> - <small>I bez JavaScriptu máme program! :)</small> - <br> - - {% for block in page.content %} - <h2>{{ block.value.name }}</h2> - <p>{{ block.value.description }}</p> - - {% for item in block.value.program_items %} - {{ item.content }} - {% endfor %} - {% endfor %} - </section> - </noscript> - - <section class="main-wrapper" id="js-program" style="display:none"> - <div class="content-wrapper"> - <section class="topic-wrapper"> - {% for block in page.content %} - {% include_block block %} - {% endfor %} - </section> - - <section class="topic-content-wrapper"></section> - </div> - </section> - - <section class="buttons-wrapper"> - <a - class="bottom-button" - id="button-odebirej-novinky" - href="https://nalodeni.pirati.cz/news/all/" - >Odebírej<br>Novinky</a> - - <a - class="bottom-button" - id="button-pridej-se-k-nam" - href="https://nalodeni.pirati.cz/" - >Přidej se<br>k nám!</a> - - <a - class="bottom-button" - id="button-prihod-do-truhly" - href="https://dary.pirati.cz/" - >Přihoď<br>do truhly</a> - </section> - </section> - </div> - - <section id="share-form" class="modal"> - <h2>Sdílení je aktem lásky.</h2> - - <textarea id="share-text" rows="5"></textarea> - - <section class="share-icon-wrapper"> - <div class="mast-share mast-share-sm share-icon"> - <input type="checkbox" class="mast-check-toggle"> - <div class="mast-instance"> - <span>Instance: </span> - <input type="textbox" name="mast-instance-input" placeholder="mastodon.social"> - <button class="mast-share-button">Sdílet</button> - </div> - <label class="mast-top mast-check-label"> - <img - src="{% static 'district/svg/share-icons/mastodon-brands.svg' %}" - alt="Sdílet na Mastodonu" - height="40" - width="40" - > - </label> - </div> - - <a - id="share-diaspora" - class="share-icon" - href="#" - rel="nofollow noopener noreferrer" - ><img - src="{% static 'district/svg/share-icons/diaspora-brands.svg' %}" - alt="Sdílet na Diaspoře" - height="40" - width="40" - ></a> - - <a - id="share-twitter" - class="share-icon" - href="#" - rel="nofollow noopener noreferrer" - ><img - src="{% static 'district/svg/share-icons/twitter-square-brands.svg' %}" - alt="Sdílet na Twitteru" - height="40" - width="40" - ></a> - - <a - id="share-facebook" - class="share-icon" - href="#" - rel="nofollow noopener noreferrer" - ><img - src="{% static 'district/svg/share-icons/facebook-square-brands.svg' %}" - alt="Sdílet na Facebooku" - height="40" - width="40" - ></a> - </section> - </section> - - <script - type="text/javascript" - src="{% static 'district/js/ui.js' %}" - ></script> -{% endblock %} diff --git a/district/templates/district/district_post_election_strategy_page.html b/district/templates/district/district_post_election_strategy_page.html deleted file mode 100644 index 30e7f09defecedf627b6d0943639b47cd75a70da..0000000000000000000000000000000000000000 --- a/district/templates/district/district_post_election_strategy_page.html +++ /dev/null @@ -1,28 +0,0 @@ -{% extends "district/base.html" %} -{% load wagtailcore_tags wagtailimages_tags shared_filters %} - -{% block content %} - <div class="lg:flex lg:space-x-8 xl:space-x-16"> - <section class="lg:w-3/5 xl:w-2/3"> - <h1 class="head-alt-md md:head-alt-lg max-w-5xl mb-4"> - {{ page.title }} - </h1> - <p class="font-bold text-lg leading-normal mb-8"> - {{ page.perex }} - </p> - - {% for block in page.content %} - {% include_block block %} - {% endfor %} - </section> - - <section class="pt-8 lg:w-2/5 xl:w-1/3 lg:pt-0"> - <div class="lg:card lg:elevation-10"> - <div class="lg:card__body"> - <h2 class="head-heavy-sm mb-4"><a href="{% pageurl page.root_election_page %}">{{ page.root_election_page.title }}</a></h2> - {% include "district/includes/election_subpage_sidebar_content.html" %} - </div> - </div> - </section> - </div> -{% endblock content %} diff --git a/shared/blocks/base.py b/shared/blocks/base.py index f7adcace64c95943739b0cdce011298918f1b7b4..18bf8246457126bf4b180a584783dd5e54bd00e0 100644 --- a/shared/blocks/base.py +++ b/shared/blocks/base.py @@ -1025,7 +1025,7 @@ class ChartBlock(blocks.StructBlock): return context class Meta: - # template = "" + template = "styleguide2/includes/molecules/blocks/chart.html" label = "Graf" icon = "form" help_text = """Všechny položky zdrojů dat se chovají jako sloupce. @@ -1062,7 +1062,7 @@ class NewsletterSubscriptionBlock(blocks.StructBlock): class Meta: label = "Formulář pro odebírání newsletteru" icon = "form" - template = "shared/blocks/newsletter_subscription_block.html" + template = "styleguide2/includes/organisms/main_section/newsletter_section.html" DEFAULT_CONTENT_BLOCKS = [ diff --git a/shared/templates/styleguide2/includes/atoms/table/aligned_table.html b/shared/templates/styleguide2/includes/atoms/table/aligned_table.html new file mode 100644 index 0000000000000000000000000000000000000000..39915c192c05ef71c90c073dc0bd7fc434467fb9 --- /dev/null +++ b/shared/templates/styleguide2/includes/atoms/table/aligned_table.html @@ -0,0 +1,67 @@ +{% load table_block_tags shared_filters %} + +<div class="my-6 prose" + style="max-width: unset"> + <table + class="max-w-prose" + style=" + {% comment %}TODO{% endcomment %} + + {% if self.alignment == "left" %} + {% elif alignment == "center" %} + margin-left: auto; + margin-right: auto; + {% elif alignment == "right" %} + margin-left: auto; + {% elif alignment == "full" %} + width: 100%; + {% endif %} + " + > + {% if table.table_caption %} + <caption class="head-heavy-sm my-4">{{ table.table_caption }}</caption> + {% endif %} + + {% if table_header %} + <thead> + <tr> + {% for column in table_header %} + {% with forloop.counter0 as col_index %} + <th scope="col" {% cell_classname 0 col_index %}> + {% if column.strip %} + {{ column.strip|markdown }} + {% endif %} + </th> + {% endwith %} + {% endfor %} + </tr> + </thead> + {% endif %} + + <tbody> + {% for row in table.data %} + {% with forloop.counter0 as row_index %} + <tr> + {% for column in row %} + {% with forloop.counter0 as col_index %} + {% if table.first_col_is_header and forloop.first %} + <th scope="row" {% cell_classname row_index col_index table_header %}> + {% if column.strip %} + {{ column.strip|markdown }} + {% endif %} + </th> + {% else %} + <td {% cell_classname row_index col_index table_header %}> + {% if column.strip %} + {{ column.strip|markdown }} + {% endif %} + </td> + {% endif %} + {% endwith %} + {% endfor %} + </tr> + {% endwith %} + {% endfor %} + </tbody> + </table> +</div> \ No newline at end of file diff --git a/shared/templates/styleguide2/includes/molecules/blocks/chart.html b/shared/templates/styleguide2/includes/molecules/blocks/chart.html new file mode 100644 index 0000000000000000000000000000000000000000..598416df3be381f8eaab1572fb7b6b8b0fcccbfa --- /dev/null +++ b/shared/templates/styleguide2/includes/molecules/blocks/chart.html @@ -0,0 +1,112 @@ +{% load wagtailcore_tags %} +{% load static %} + +<script src="{% static "shared/vendor/chart.js/chart.umd.4.2.0.js" %}"></script> + +<div class="py-4"> + <canvas + class="lg:h-120 lg:w-auto w-full mx-auto" + id="{{ block.id }}" + ></canvas> +</div> + +<script> + window.addEventListener( + "load", + () => { + const getRandomInt = (max) => { + return Math.floor(Math.random() * Math.floor(max)); + } + + const chartType = "{{ value.chart_type }}"; + let colorOrder = getRandomInt(6); + const colors = [ + "rgba(255, 99, 132, 0.6)", + "rgba(54, 162, 235, 0.6)", + "rgba(255, 206, 86, 0.6)", + "rgba(75, 192, 192, 0.6)", + "rgba(153, 102, 255, 0.6)", + "rgba(255, 159, 64, 0.6)", + "rgba(75, 192, 192, 0.6)", + "rgba(153, 102, 255, 0.6)", + ]; + + const getColor = () => { + if (colorOrder === colors.length) { + colorOrder = 0; + } + + return colors[colorOrder++]; + } + + const getDatasets = () => { + const datasets = {{ value.datasets|safe }}; + let finalDatasets = []; + + for (let i = 0; i < datasets.length; i++) { + let tempDataset = {}; + + tempDataset["label"] = datasets[i]["label"]; + tempDataset["data"] = datasets[i]["data"]; + + if (chartType == "pie" || chartType == "doughnut" || datasets.length == 1) { + let backgroundColor = []; + + for (let j = 0; j < tempDataset["data"].length; j++) + backgroundColor.push(getColor()); + + tempDataset["backgroundColor"] = backgroundColor; + } else { + tempDataset["backgroundColor"] = getColor(); + } + + tempDataset["borderColor"] = getColor(); + tempDataset["borderWidth"] = 1; + tempDataset["fill"] = true; + tempDataset["tension"] = 0.3; + + finalDatasets.push(tempDataset); + } + + return finalDatasets; + }; + + const ctx = document.getElementById("{{ block.id }}").getContext("2d"); + + const blockChart = new Chart( + ctx, + { + type: "{% if value.chart_type != "horizontalBar" %}{{ value.chart_type }}{% else %}bar{% endif %}", + data: { + labels: {{ value.labels|safe }}, + datasets: getDatasets(), + }, + options: { + {% if value.chart_type == "horizontalBar" %} + indexAxis: "y", + {% endif %} + plugins: { + title: { + display: true, + text: "{{ value.title|escapejs }}", + }, + }, + scales: { + y: { + ticks: { + beginAtZero: true, + }, + }, + }{% if value.hide_points %}, + elements: { + point: { + radius: 0 + } + } + {% endif %} + } + } + ); + } + ); +</script> \ No newline at end of file diff --git a/shared/templates/styleguide2/includes/organisms/layout/navbar.html b/shared/templates/styleguide2/includes/organisms/layout/navbar.html index 93c6dbfee8408cda5902ea9065132421505b4954..27faaa2f251fe48cefd93d00539caec16bfebcf2 100644 --- a/shared/templates/styleguide2/includes/organisms/layout/navbar.html +++ b/shared/templates/styleguide2/includes/organisms/layout/navbar.html @@ -48,9 +48,11 @@ {% endfor %} </div> - <form method="GET" action="{{ page.root_page.search_page.url }}"> - {% include 'styleguide2/includes/atoms/form_fields/form_input.html' with placeholder='Hledej' classes='text-black p-3 w-60' name='q' value=global_search_query %} - </form> + {% if page.root_page.search_page %} + <form method="GET" action="{{ page.root_page.search_page.url }}"> + {% include 'styleguide2/includes/atoms/form_fields/form_input.html' with placeholder='Hledej' classes='text-black p-3 w-60' name='q' value=global_search_query %} + </form> + {% endif %} {% block after_desktop_search %}{% endblock %} </div> @@ -187,13 +189,15 @@ " > <div class="flex flex-col gap-1.5 items-start"> - <form - method="GET" - action="{{ page.root_page.search_page.url }}" - class="block w-full mb-8 flex" - > - {% include 'styleguide2/includes/atoms/form_fields/form_input.html' with placeholder='Hledej' classes='text-black px-2 py-1 w-full' name='q' value=global_search_query %} - </form> + {% if page.root_page.search_page %} + <form + method="GET" + action="{{ page.root_page.search_page.url }}" + class="block w-full mb-8 flex" + > + {% include 'styleguide2/includes/atoms/form_fields/form_input.html' with placeholder='Hledej' classes='text-black px-2 py-1 w-full' name='q' value=global_search_query %} + </form> + {% endif %} {% if page.root_page.important_item_name %} {% firstof page.root_page.important_item_page.url page.root_page.important_item_url as target %} diff --git a/shared/templates/styleguide2/simple_page.html b/shared/templates/styleguide2/simple_page.html index da2db76e9107c443b0b55226b6d5d30bf57a6f69..cb8e38926010a3b5c87abbbd6a57da9f3fcd94d2 100644 --- a/shared/templates/styleguide2/simple_page.html +++ b/shared/templates/styleguide2/simple_page.html @@ -16,7 +16,7 @@ {% for block in page.content %} {% include_block block %} {% endfor %} - {% endblock %} - </div> + </div> + {% endblock %} </main> {% endblock %} diff --git a/uniweb/constants.py b/uniweb/constants.py index fb0ec2ce63647be6c8196cfb24e76717bf4a9372..9244cc61c3719d0a1ef6a5c3d182c5487147d0de 100644 --- a/uniweb/constants.py +++ b/uniweb/constants.py @@ -1,7 +1,3 @@ -from shared_legacy.const import RICH_TEXT_DEFAULT_FEATURES - -RICH_TEXT_FEATURES = RICH_TEXT_DEFAULT_FEATURES - BLACK_ON_WHITE = "black_on_white" WHITE_ON_BLACK = "white_on_black" WHITE_ON_BLUE = "white_on_blue" diff --git a/uniweb/migrations/0065_alter_uniwebhomepage_title_suffix.py b/uniweb/migrations/0065_alter_uniwebhomepage_title_suffix.py new file mode 100644 index 0000000000000000000000000000000000000000..9f06f7b2d198335e0edc72f9d3034b2e6819998b --- /dev/null +++ b/uniweb/migrations/0065_alter_uniwebhomepage_title_suffix.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-06-18 10:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('uniweb', '0064_alter_uniwebhomepage_top_menu_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='uniwebhomepage', + name='title_suffix', + field=models.CharField(blank=True, help_text="Umožňuje přidat příponu k základnímu titulku stránky. Pokud je např. titulek stránky pojmenovaný 'Kontakt' a do přípony vyplníte 'MS Pardubice', výsledný titulek bude 'Kontakt | Piráti MS Pardubice'. Pokud příponu nevyplníte, použije se název domovské stránky a text 'Piráti', např. 'Kontakt | Piráti Pardubice'.", max_length=100, null=True, verbose_name='Přípona titulku stránky'), + ), + ] diff --git a/uniweb/migrations/0066_alter_uniwebflexiblepage_content_and_more.py b/uniweb/migrations/0066_alter_uniwebflexiblepage_content_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..2fcd3fc19c6710905dfc3151fb5354a92daeb66a --- /dev/null +++ b/uniweb/migrations/0066_alter_uniwebflexiblepage_content_and_more.py @@ -0,0 +1,44 @@ +# Generated by Django 5.0.6 on 2024-06-18 11:00 + +import shared_legacy.blocks.base +import wagtail.blocks +import wagtail.blocks.static_block +import wagtail.contrib.table_block.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('uniweb', '0065_alter_uniwebhomepage_title_suffix'), + ] + + operations = [ + migrations.AlterField( + model_name='uniwebflexiblepage', + name='content', + field=wagtail.fields.StreamField([('headline', wagtail.blocks.StructBlock([('headline', wagtail.blocks.CharBlock(label='Nadpis', max_length=300, required=True)), ('tag', wagtail.blocks.ChoiceBlock(choices=[('h1', 'H1'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], help_text='Čím nižší číslo, tím vyšší úroveň.', label='Úroveň nadpisu')), ('style', wagtail.blocks.ChoiceBlock(choices=[('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], help_text='Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', label='Velikost')), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor', template='styleguide2/includes/atoms/text/prose_richtext.html')), ('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared_legacy.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.html')), ('newsletter', wagtail.blocks.StructBlock([('list_id', wagtail.blocks.CharBlock(label='ID newsletteru', required=True)), ('description', wagtail.blocks.CharBlock(default='Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!', label='Popis newsletteru', required=True))]))], blank=True, verbose_name='obsah stránky'), + ), + migrations.AlterField( + model_name='uniwebformpage', + name='content_after', + field=wagtail.fields.StreamField([('headline', wagtail.blocks.StructBlock([('headline', wagtail.blocks.CharBlock(label='Nadpis', max_length=300, required=True)), ('tag', wagtail.blocks.ChoiceBlock(choices=[('h1', 'H1'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], help_text='Čím nižší číslo, tím vyšší úroveň.', label='Úroveň nadpisu')), ('style', wagtail.blocks.ChoiceBlock(choices=[('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], help_text='Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', label='Velikost')), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor', template='styleguide2/includes/atoms/text/prose_richtext.html')), ('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared_legacy.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.html'))], blank=True, verbose_name='obsah stránky za formulářem'), + ), + migrations.AlterField( + model_name='uniwebformpage', + name='content_before', + field=wagtail.fields.StreamField([('headline', wagtail.blocks.StructBlock([('headline', wagtail.blocks.CharBlock(label='Nadpis', max_length=300, required=True)), ('tag', wagtail.blocks.ChoiceBlock(choices=[('h1', 'H1'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], help_text='Čím nižší číslo, tím vyšší úroveň.', label='Úroveň nadpisu')), ('style', wagtail.blocks.ChoiceBlock(choices=[('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], help_text='Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', label='Velikost')), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor', template='styleguide2/includes/atoms/text/prose_richtext.html')), ('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared_legacy.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.html'))], blank=True, verbose_name='obsah stránky před formulářem'), + ), + migrations.AlterField( + model_name='uniwebformpage', + name='content_landing', + field=wagtail.fields.StreamField([('headline', wagtail.blocks.StructBlock([('headline', wagtail.blocks.CharBlock(label='Nadpis', max_length=300, required=True)), ('tag', wagtail.blocks.ChoiceBlock(choices=[('h1', 'H1'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], help_text='Čím nižší číslo, tím vyšší úroveň.', label='Úroveň nadpisu')), ('style', wagtail.blocks.ChoiceBlock(choices=[('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], help_text='Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', label='Velikost')), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor', template='styleguide2/includes/atoms/text/prose_richtext.html')), ('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared_legacy.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.html'))], blank=True, verbose_name='obsah stránky zobrazené po odeslání formuláře'), + ), + migrations.AlterField( + model_name='uniwebhomepage', + name='content', + field=wagtail.fields.StreamField([('headline', wagtail.blocks.StructBlock([('headline', wagtail.blocks.CharBlock(label='Nadpis', max_length=300, required=True)), ('tag', wagtail.blocks.ChoiceBlock(choices=[('h1', 'H1'), ('h2', 'H2'), ('h3', 'H3'), ('h4', 'H4'), ('h5', 'H5'), ('h6', 'H6')], help_text='Čím nižší číslo, tím vyšší úroveň.', label='Úroveň nadpisu')), ('style', wagtail.blocks.ChoiceBlock(choices=[('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], help_text='Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', label='Velikost')), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Textový editor', template='styleguide2/includes/atoms/text/prose_richtext.html')), ('title', wagtail.blocks.CharBlock(group='nadpisy', icon='title', label='nadpis', template='uniweb/blocks/title.html')), ('advanced_title', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis'))])), ('picture_title', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('title', wagtail.blocks.CharBlock(label='nadpis')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)', label='obrázek'))])), ('advanced_text', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='text'))])), ('text_columns', wagtail.blocks.StructBlock([('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('advanced_text_columns', wagtail.blocks.StructBlock([('align', wagtail.blocks.ChoiceBlock(choices=[('left', 'vlevo'), ('center', 'uprostřed'), ('right', 'vpravo')], label='zarovnání')), ('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('left_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='levý sloupec')), ('right_text', wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='pravý sloupec'))])), ('gallery', wagtail.blocks.ListBlock(wagtail.images.blocks.ImageChooserBlock(label='obrázek'), group='ostatní', icon='image', label='galerie', template='uniweb/blocks/gallery.html')), ('picture_list', wagtail.blocks.StructBlock([('color', wagtail.blocks.ChoiceBlock(choices=[('black_on_white', 'černá na bílé'), ('black_on_yellow', 'černá na žluté'), ('white_on_black', 'bílá na černé'), ('white_on_blue', 'bílá na modré'), ('white_on_cyan', 'bílá na tyrkysové'), ('white_on_violet', 'bílá na fialové')], label='barva')), ('items', wagtail.blocks.ListBlock(wagtail.blocks.RichTextBlock(features=['h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='odstavec'), label='odstavce')), ('picture', wagtail.images.blocks.ImageChooserBlock(help_text='rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)', label='obrázek'))])), ('aligned_table', wagtail.blocks.StructBlock([('alignment', wagtail.blocks.ChoiceBlock(choices=[('left', 'Vlevo'), ('center', 'Vprostřed'), ('right', 'Vpravo'), ('full', 'Celá šířka obrazovky')], label='Zarovnání')), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka'))], group='ostatní', template='uniweb/blocks/aligned_table.html')), ('table', wagtail.contrib.table_block.blocks.TableBlock(group='ostatní', label='Tabulka', template='uniweb/blocks/table.html')), ('articles', wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='sekce článků', page_type=['uniweb.UniwebArticlesIndexPage'])), ('lines', wagtail.blocks.IntegerBlock(default=1, help_text='zobrazí se tři články na řádek', label='počet řádků'))])), ('calendar_agenda', wagtail.blocks.StructBlock([('info', wagtail.blocks.static_block.StaticBlock(admin_text='adresa kalendáře se zadává v nastavení hlavní stránky webu', label='volba kalendáře')), ('count', wagtail.blocks.IntegerBlock(default=10, label='maximum událostí k zobrazení')), ('event_type', wagtail.blocks.ChoiceBlock(choices=[('future', 'budoucí'), ('past', 'proběhlé')], label='druh událostí'))])), ('button', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Nadpis')), ('url', wagtail.blocks.URLBlock(help_text='Pokud je odkaz vyplněný, není nutno vyplňovat stránku.', label='Odkaz', required=False)), ('page', wagtail.blocks.PageChooserBlock(help_text='Pokud je stránka vyplněná, není nutno vyplňovat odkaz.', label='Stránka', required=False))])), ('chart', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Název', max_length=120)), ('chart_type', wagtail.blocks.ChoiceBlock(choices=[('bar', 'Graf se sloupci'), ('horizontalBar', 'Graf s vodorovnými sloupci'), ('pie', 'Koláčový graf'), ('doughnut', 'Donutový graf'), ('polarArea', 'Graf polární oblasti'), ('radar', 'Radarový graf'), ('line', 'Graf s liniemi')], label='Typ')), ('hide_points', wagtail.blocks.BooleanBlock(help_text='Mění vzhled pouze u linových grafů.', label='Schovat body', required=False)), ('local_labels', wagtail.blocks.ListBlock(wagtail.blocks.CharBlock(label='Skupina', max_length=40), blank=True, collapsed=True, default=[], label='Místně definované skupiny', required=False)), ('local_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(label='Označení zdroje dat', max_length=120)), ('data', wagtail.blocks.ListBlock(wagtail.blocks.IntegerBlock(), default=[0], label='Data'))]), blank=True, collapsed=True, default=[], label='Místní zdroje dat', required=False)), ('redmine_issue_datasets', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('projects', wagtail.blocks.MultipleChoiceBlock(choices=shared_legacy.blocks.base.get_redmine_projects, label='Projekty')), ('is_open', wagtail.blocks.BooleanBlock(label='Jen otevřené', required=False)), ('is_closed', wagtail.blocks.BooleanBlock(label='Jen uzavřené', required=False)), ('created_on_min_date', wagtail.blocks.DateBlock(label='Min. datum vytvoření', required=True)), ('created_on_max_date', wagtail.blocks.DateBlock(label='Max. datum vytvoření', required=True)), ('updated_on', wagtail.blocks.CharBlock(help_text='Např. <=2023-01-01. Více informací na pi2.cz/redmine-api', label='Filtr pro datum aktualizace', max_length=128, required=False)), ('issue_label', wagtail.blocks.CharBlock(label='Označení úkolů uvnitř grafu', max_length=128, required=True)), ('split_per_project', wagtail.blocks.BooleanBlock(label='Rozdělit podle projektu', required=False)), ('only_grow', wagtail.blocks.BooleanBlock(label='Pouze růst nahoru', required=False))], label='Redmine úkoly'), blank=True, default=[], help_text='Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.', label='Zdroje dat z Redmine (úkoly)', required=False))], template='uniweb/blocks/chart.html')), ('cards', wagtail.blocks.StructBlock([('cards', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('bg_color', wagtail.blocks.CharBlock(default='FEC900', label='Barva pozadí')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('title', wagtail.blocks.TextBlock(help_text='Řádkování je manuální.', label='Nadpis')), ('content', wagtail.blocks.RichTextBlock(label='Obsah')), ('button_text', wagtail.blocks.CharBlock(help_text='Pokud není vyplněn, tlačítko se neukáže.', label='Nadpis tlačítka', required=False)), ('button_url', wagtail.blocks.CharBlock(label='Odkaz tlačítka', required=False))], label='Karta'), label='Karty'))], template='uniweb/blocks/flip_cards.html')), ('newsletter', wagtail.blocks.StructBlock([('list_id', wagtail.blocks.CharBlock(label='ID newsletteru', required=True)), ('description', wagtail.blocks.CharBlock(default='Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!', label='Popis newsletteru', required=True))]))], blank=True, verbose_name='obsah stránky'), + ), + ] diff --git a/uniweb/migrations/0067_uniwebhomepage_footer_other_links_and_more.py b/uniweb/migrations/0067_uniwebhomepage_footer_other_links_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..df821bb637db40eff91c16b934866ec56e2d70cd --- /dev/null +++ b/uniweb/migrations/0067_uniwebhomepage_footer_other_links_and_more.py @@ -0,0 +1,63 @@ +# Generated by Django 5.0.6 on 2024-06-18 11:44 + +import django.db.models.deletion +import shared.blocks.main +import wagtail.blocks +import wagtail.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('uniweb', '0066_alter_uniwebflexiblepage_content_and_more'), + ('wagtailcore', '0093_uploadedfile'), + ] + + operations = [ + migrations.AddField( + model_name='uniwebhomepage', + name='footer_other_links', + field=wagtail.fields.StreamField([('other_links', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek')), ('list', wagtail.blocks.ListBlock(shared.blocks.main.LinkBlock, label='Seznam odkazů'))]))], blank=True, verbose_name='Odkazy v zápatí webu'), + ), + migrations.AddField( + model_name='uniwebhomepage', + name='footer_person_list', + field=wagtail.fields.StreamField([], blank=True, verbose_name='Osoby v zápatí webu'), + ), + migrations.AddField( + model_name='uniwebhomepage', + name='important_item_name', + field=models.CharField(blank=True, help_text='Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.', max_length=16, null=True, verbose_name='Jméno'), + ), + migrations.AddField( + model_name='uniwebhomepage', + name='important_item_page', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailcore.page', verbose_name='Stránka'), + ), + migrations.AddField( + model_name='uniwebhomepage', + name='important_item_url', + field=models.URLField(blank=True, null=True, verbose_name='Adresa'), + ), + migrations.AddField( + model_name='uniwebhomepage', + name='menu', + field=wagtail.fields.StreamField([('menu_item', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.', label='Titulek', required=True)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))])), ('menu_parent', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('menu_items', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.', label='Titulek', required=True)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Položky menu'))]))], blank=True, verbose_name='Položky'), + ), + migrations.AddField( + model_name='uniwebhomepage', + name='menu_button_content', + field=wagtail.fields.StreamField([('navbar_menu_item', wagtail.blocks.StructBlock([('button_link', wagtail.blocks.URLBlock(label='Odkaz tlačítka')), ('button_text', wagtail.blocks.CharBlock(label='Text tlačítka'))]))], blank=True, verbose_name='Obsah menu pro zapojení se'), + ), + migrations.AddField( + model_name='uniwebhomepage', + name='menu_button_name', + field=models.CharField(blank=True, max_length=16, null=True, verbose_name='Text na tlačítku pro zapojení'), + ), + migrations.AddField( + model_name='uniwebhomepage', + name='social_links', + field=wagtail.fields.StreamField([('social_links', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Název')), ('link', wagtail.blocks.URLBlock(label='Odkaz')), ('icon', wagtail.blocks.CharBlock(help_text='Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku', label='Ikona'))]))], blank=True, verbose_name='Odkazy na sociální sítě'), + ), + ] diff --git a/uniweb/models.py b/uniweb/models.py index 39383094cc153c4457306a17cf0dea1143e79779..dee8c99d8d0c3da5844adb18b1b8a85cd21f8be9 100644 --- a/uniweb/models.py +++ b/uniweb/models.py @@ -27,9 +27,8 @@ from wagtailmetadata.models import MetadataPageMixin from calendar_utils.models import CalendarMixin from shared.models import SharedTaggedUniwebArticle -from shared_legacy.blocks import ChartBlock, FlipCardsBlock, NewsletterSubscriptionBlock -from shared_legacy.const import RICH_TEXT_DEFAULT_FEATURES -from shared_legacy.models import ( +from shared_legacy.blocks import FlipCardsBlock +from shared.models import ( ArticleMixin, ArticlesPageMixin, ExtendedMetadataHomePageMixin, @@ -37,7 +36,15 @@ from shared_legacy.models import ( FooterMixin, PdfPageMixin, SubpageMixin, + MainHomePageMixin, + MainMenuMixin, + SocialMixin, + CalendarMixin, + MainSearchPageMixin, ) +from shared.blocks import HeadlineBlock, NewsletterSubscriptionBlock, ChartBlock, GalleryBlock +from shared_legacy.models import FooterMixin as LegacyFooterMixin +from shared.const import RICH_TEXT_DEFAULT_FEATURES from shared_legacy.utils import make_promote_panels, strip_all_html_tags, trim_to_length from tuning import admin_help @@ -53,7 +60,6 @@ from .constants import ( COLOR_CSS, FUTURE, LEFT, - RICH_TEXT_FEATURES, ) @@ -88,9 +94,9 @@ class AlignBlock(blocks.StructBlock): class ColumnsTextBlock(blocks.StructBlock): - left_text = blocks.RichTextBlock(label="levý sloupec", features=RICH_TEXT_FEATURES) + left_text = blocks.RichTextBlock(label="levý sloupec", features=RICH_TEXT_DEFAULT_FEATURES) right_text = blocks.RichTextBlock( - label="pravý sloupec", features=RICH_TEXT_FEATURES + label="pravý sloupec", features=RICH_TEXT_DEFAULT_FEATURES ) class Meta: @@ -101,9 +107,9 @@ class ColumnsTextBlock(blocks.StructBlock): class AdvancedColumnsTextBlock(ColorBlock, AlignBlock): - left_text = blocks.RichTextBlock(label="levý sloupec", features=RICH_TEXT_FEATURES) + left_text = blocks.RichTextBlock(label="levý sloupec", features=RICH_TEXT_DEFAULT_FEATURES) right_text = blocks.RichTextBlock( - label="pravý sloupec", features=RICH_TEXT_FEATURES + label="pravý sloupec", features=RICH_TEXT_DEFAULT_FEATURES ) class Meta: @@ -138,7 +144,7 @@ class PictureTitleBlock(ColorBlock): class AdvancedTextBlock(ColorBlock, AlignBlock): - text = blocks.RichTextBlock(label="text", features=RICH_TEXT_FEATURES) + text = blocks.RichTextBlock(label="text", features=RICH_TEXT_DEFAULT_FEATURES) class Meta: label = "text (pokročilý)" @@ -149,7 +155,7 @@ class AdvancedTextBlock(ColorBlock, AlignBlock): class PictureListBlock(ColorBlock): items = blocks.ListBlock( - blocks.RichTextBlock(label="odstavec", features=RICH_TEXT_FEATURES), + blocks.RichTextBlock(label="odstavec", features=RICH_TEXT_DEFAULT_FEATURES), label="odstavce", ) picture = ImageChooserBlock( @@ -273,6 +279,76 @@ class ButtonBlock(blocks.StructBlock): CONTENT_STREAM_BLOCKS = [ + # title, advanced_title + ("headline", HeadlineBlock()), + + # picture_title + + # text + ( + "text", + blocks.RichTextBlock( + label="Textový editor", + features=RICH_TEXT_DEFAULT_FEATURES, + template="styleguide2/includes/atoms/text/prose_richtext.html", + ), + ), + + # advanced_text + + # text_columns + + # advanced_text_columns + + # gallery + ( + "new_gallery", + GalleryBlock() + ), + + # picture_list + + # aligned_table + ( + "aligned_table", + AlignedTableBlock( + group="ostatní", + template="styleguide2/includes/atoms/table/aligned_table.html", + ), + ), + + # table + ( + "table", + TableBlock( + label="Tabulka", + group="ostatní", + template="styleguide2/includes/atoms/table/table.html", + ), + ), + + # articles + + # calendar_agenda + + # button + + # chart + ("chart", ChartBlock()), + + # cards + + + + + + + + + + + + ( "title", blocks.CharBlock( @@ -283,16 +359,18 @@ CONTENT_STREAM_BLOCKS = [ ), ), ("advanced_title", AdvancedTitleBlock()), + ("picture_title", PictureTitleBlock()), - ( - "text", - blocks.RichTextBlock( - label="text", - features=RICH_TEXT_FEATURES, - group="texty", - template="uniweb/blocks/text.html", - ), - ), + + # ( + # "text", + # blocks.RichTextBlock( + # label="Textový editor", + # features=RICH_TEXT_DEFAULT_FEATURES, + # template="styleguide2/includes/atoms/text/prose_richtext.html", + # ), + # ), + ("advanced_text", AdvancedTextBlock()), ("text_columns", ColumnsTextBlock()), ("advanced_text_columns", AdvancedColumnsTextBlock()), @@ -307,25 +385,9 @@ CONTENT_STREAM_BLOCKS = [ ), ), ("picture_list", PictureListBlock()), - ( - "aligned_table", - AlignedTableBlock( - group="ostatní", - template="uniweb/blocks/aligned_table.html", - ), - ), - ( - "table", - TableBlock( - label="Tabulka", - group="ostatní", - template="uniweb/blocks/table.html", - ), - ), ("articles", ArticlesBlock()), ("calendar_agenda", CalendarAgendaBlock()), ("button", ButtonBlock()), - ("chart", ChartBlock(template="uniweb/blocks/chart.html")), ("cards", FlipCardsBlock(template="uniweb/blocks/flip_cards.html")), ] @@ -338,13 +400,7 @@ class UniwebArticleTag(TaggedItemBase): ) -class UniwebHomePage( - Page, - ExtendedMetadataHomePageMixin, - MetadataPageMixin, - CalendarMixin, - FooterMixin, -): +class UniwebHomePage(CalendarMixin, LegacyFooterMixin, MainHomePageMixin): ### FIELDS fallback_image = models.ForeignKey( @@ -399,6 +455,14 @@ class UniwebHomePage( help_text="užší stránka je vhodná pro lepší čitelnost textů", ) + ### Header + menu_button_name = models.CharField( + verbose_name="Text na tlačítku pro zapojení", + max_length=16, + blank=True, + null=True, + ) + ### Footer hide_footer = models.BooleanField( "skrýt patičku", default=False, help_text="Chcete skrýt patičku?" @@ -428,10 +492,6 @@ class UniwebHomePage( ### PANELS - content_panels = Page.content_panels + [FieldPanel("content")] - - promote_panels = make_promote_panels(admin_help.build(admin_help.IMPORTANT_TITLE)) - settings_panels = [ FieldPanel("logo"), MultiFieldPanel( @@ -441,7 +501,7 @@ class UniwebHomePage( FieldPanel("narrow_layout"), FieldPanel("fallback_image"), ], - "nastavení webu", + "Obecné nastavení webu", ), MultiFieldPanel( [ @@ -456,24 +516,28 @@ class UniwebHomePage( FieldPanel("show_logo"), FieldPanel("show_social_links"), FieldPanel("show_pirate_buttons"), - FieldPanel("footer_links"), - FieldPanel("footer_extra_content"), FieldPanel("donation_page"), ], - "nastavení patičky", + "Patička", ), ] - menu_panels = [FieldPanel("top_menu")] + menu_panels = ( + MainMenuMixin.menu_panels + + SocialMixin.menu_panels + + [ + FieldPanel("menu_button_name"), + FieldPanel("menu_button_content"), + ] + ) edit_handler = TabbedInterface( [ - ObjectList(content_panels, heading=gettext_lazy("Content")), - ObjectList(promote_panels, heading=gettext_lazy("Promote")), - ObjectList( - settings_panels, heading=gettext_lazy("Settings"), classname="settings" - ), - ObjectList(menu_panels, heading="Menu"), + ObjectList(MainHomePageMixin.content_panels, heading="Obsah"), + ObjectList(menu_panels, heading="Hlavička"), + ObjectList(MainHomePageMixin.footer_panels, heading="Patička"), + ObjectList(MainHomePageMixin.promote_panels, heading="Propagace"), + ObjectList(settings_panels, heading="Nastavení"), ] ) @@ -485,6 +549,7 @@ class UniwebHomePage( "uniweb.UniwebFormPage", "uniweb.UniwebPeoplePage", "uniweb.UniwebCalendarPage", + "uniweb.UniwebSearchPage", ] ### OTHERS @@ -492,6 +557,24 @@ class UniwebHomePage( class Meta: verbose_name = "Univerzální web" + @property + def gdpr_and_cookies_page(self): + from main.models import MainHomePage + + return MainHomePage.objects.first().gdpr_and_cookies_page + + @property + def article_page_model(self): + return UniwebArticlePage + + @property + def articles_page_model(self): + return UniwebArticlesIndexPage + + @property + def search_page_model(self): + return UniwebSearchPage + @property def root_page(self): return self @@ -533,7 +616,10 @@ class UniwebFlexiblePage( "uniweb.UniwebFlexiblePage", "uniweb.UniwebFormPage", ] - subpage_types = ["uniweb.UniwebFlexiblePage", "uniweb.UniwebFormPage"] + subpage_types = [ + "uniweb.UniwebFlexiblePage", + "uniweb.UniwebFormPage", + ] ### OTHERS @@ -974,3 +1060,9 @@ class UniwebPdfPage(MetadataPageMixin, SubpageMixin, Page, PdfPageMixin): class Meta: verbose_name = "PDF stránka" + + +class UniwebSearchPage(MainSearchPageMixin): + ### RELATIONS + + parent_page_types = ["uniweb.UniwebHomePage"] \ No newline at end of file diff --git a/uniweb/templates/uniweb/uniweb_home_page.html b/uniweb/templates/uniweb/uniweb_home_page.html index a288e155518c2c3e2db4382f6453ed3a449e1e94..595c6b1fc9c20a9d89b661ea2f22b6186264bb24 100644 --- a/uniweb/templates/uniweb/uniweb_home_page.html +++ b/uniweb/templates/uniweb/uniweb_home_page.html @@ -1,10 +1,29 @@ -{% extends "uniweb/base.html" %} +{% extends "styleguide2/simple_page.html" %} + {% load wagtailcore_tags %} {% block content %} -<main> + {% block navbar %} + {% include 'styleguide2/includes/organisms/layout/district/navbar.html' with selected_item=page.get_menu_title %} + {% endblock %} - {% include "uniweb/snippet_sections.html" %} + {% block header %} + {% include 'styleguide2/includes/organisms/header/photo_header.html' with title=page.title main_image=page.main_image %} + {% endblock %} -</main> -{% endblock %} + <main class="mb-2 lg:mb-12"> + {% block inner_content %} + <div class="mt-8"> + {% for block in page.content %} + <div + {% if block.block_type != "newsletter" %} + class="container--wide" + {% endif %} + > + {% include_block block %} + </div> + {% endfor %} + </div> + {% endblock %} + </main> +{% endblock %} \ No newline at end of file