Skip to content
Snippets Groups Projects
Verified Commit c0520c59 authored by jindra12's avatar jindra12
Browse files

Improve graphic styling of donate

parent 57dd9ce8
Branches
No related tags found
2 merge requests!804Release,!791Improve graphic styling of donate
Pipeline #13511 passed
...@@ -9,6 +9,8 @@ from wagtail.blocks import ( ...@@ -9,6 +9,8 @@ from wagtail.blocks import (
) )
from wagtail.images.blocks import ImageChooserBlock from wagtail.images.blocks import ImageChooserBlock
from donate.constants import RICH_TEXT_FEATURES
class CrowdfundingRewardBlock(StructBlock): class CrowdfundingRewardBlock(StructBlock):
title = CharBlock(label="Název odměny") title = CharBlock(label="Název odměny")
...@@ -33,7 +35,7 @@ class CrowdfundingRewardBlock(StructBlock): ...@@ -33,7 +35,7 @@ class CrowdfundingRewardBlock(StructBlock):
class CustomContentBlock(StructBlock): class CustomContentBlock(StructBlock):
title = CharBlock(label="Nadpis") title = CharBlock(label="Nadpis")
content = RichTextBlock(label="Obsah") content = RichTextBlock(label="Obsah", features=RICH_TEXT_FEATURES)
link = URLBlock(label="Odkaz") link = URLBlock(label="Odkaz")
class Meta: class Meta:
......
from shared.const import RICH_TEXT_DEFAULT_FEATURES
# Select colors for rich text editors font color from style guide
font_colors = [
("Green", "#4ca971"),
("Yellow", "#fde119"),
("Blue", "#027da8"),
("Cyan", "#004958"),
("Violet", "#670047"),
("Red", "#d60d53"),
("Grey", "#262626"),
]
RICH_TEXT_FEATURES = RICH_TEXT_DEFAULT_FEATURES + list(
map(lambda color: "font_color_" + color[1], font_colors)
)
# Generated by Django 4.1.8 on 2023-07-01 00:13
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("donate", "0027_donatehomepage_custom_blocks"),
]
operations = [
migrations.AddField(
model_name="donatehomepage",
name="faq_page",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.PROTECT,
related_name="FAQ",
to="donate.donatetextpage",
verbose_name="Stránka s FAQ",
),
),
]
...@@ -136,6 +136,14 @@ class DonateHomePage( ...@@ -136,6 +136,14 @@ class DonateHomePage(
verbose_name="Obecné bloky", verbose_name="Obecné bloky",
) )
# settings # settings
faq_page = models.ForeignKey(
"donate.DonateTextPage",
on_delete=models.PROTECT,
blank=True,
null=True,
related_name="FAQ",
verbose_name="Stránka s FAQ",
)
custom_url_1 = models.URLField("Vlastní odkaz 1", blank=True, null=True) custom_url_1 = models.URLField("Vlastní odkaz 1", blank=True, null=True)
custom_url_1_text = models.CharField( custom_url_1_text = models.CharField(
"Text vlastního odkazu 1", max_length=128, blank=True "Text vlastního odkazu 1", max_length=128, blank=True
...@@ -222,6 +230,7 @@ class DonateHomePage( ...@@ -222,6 +230,7 @@ class DonateHomePage(
], ],
"nastavení darů", "nastavení darů",
), ),
FieldPanel("faq_page"),
] ]
### RELATIONS ### RELATIONS
......
...@@ -213,6 +213,10 @@ h3.page-subheading { ...@@ -213,6 +213,10 @@ h3.page-subheading {
color: #ffffff; color: #ffffff;
} }
.section--custom {
display: flow-root;
}
/* SECTION SIZING */ /* SECTION SIZING */
section { section {
...@@ -1199,3 +1203,13 @@ img.full-width { ...@@ -1199,3 +1203,13 @@ img.full-width {
font-style: italic; font-style: italic;
font-weight: inherit; font-weight: inherit;
} }
/* OVERRIDE RICHTEXT IMAGES FOR MAIN PAGE (TODO: find out if we can apply this to all richtext images in donate */
.section--custom .richtext-image.left {
float: left;
margin-right: 1.5rem;
}
.section--custom .richtext-image.right {
float: right;
margin-left: 1.5rem;
}
...@@ -139,6 +139,9 @@ ...@@ -139,6 +139,9 @@
<img src="{% static "donate/img/logo_napis_white.svg" %}" alt="Logo podpoř piráty"> <img src="{% static "donate/img/logo_napis_white.svg" %}" alt="Logo podpoř piráty">
</div> </div>
<ul class="footer__menu mt-5"> <ul class="footer__menu mt-5">
{% if page.root_page.faq_page %}
<li><a href={{ page.root_page.faq_page.url }}>FAQ - pravidla pro přijímání darů</a></li>
{% endif %}
<li><a href="/osobni-udaje/">Zásady zpracování osobních údajů</a></li> <li><a href="/osobni-udaje/">Zásady zpracování osobních údajů</a></li>
<li><a href="/obchodni-podminky/">Obchodní podmínky</a></li> <li><a href="/obchodni-podminky/">Obchodní podmínky</a></li>
</ul> </ul>
......
{% load wagtailcore_tags wagtailimages_tags %} {% load wagtailcore_tags wagtailimages_tags %}
<div class="container mt-5"> <div class="container">
<h2 class="lead page-subheading mb-4">{{ self.title }}</h2> <h2 class="lead page-subheading mb-4">{{ self.title }}</h2>
<p class="mb-4"> <div class="mb-4 clearfix">
{{ self.content|richtext }} {{ self.content|richtext }}
</p> </div>
<a href="{{ self.link }}" class="btn btn-dark btn-lg my-2">Chci vědět více <i class="icon-chevron-right ml-2"></i></a> <a href="{{ self.link }}" class="btn btn-dark btn-lg my-2">Chci vědět více <i class="icon-chevron-right ml-2"></i></a>
</div> </div>
{% extends "donate/base.html" %} {% extends "donate/base.html" %}
{% load static wagtailimages_tags wagtailcore_tags %} {% load static wagtailimages_tags wagtailcore_tags donate_tags %}
{% block content %} {% block content %}
<!-- CONTENT --> <!-- CONTENT -->
<main role="main"> <main role="main">
<section class="section--{% get_section_kind %} section--lead" id="uvod">
<section class="section--alternate section--lead" id="uvod">
<div class="container"> <div class="container">
<div class="row align-items-center"> <div class="row align-items-center">
...@@ -39,7 +38,7 @@ ...@@ -39,7 +38,7 @@
</section> </section>
{% if page.show_donate_form %} {% if page.show_donate_form %}
<section class="section--primary" id="strana"> <section class="section--{% get_section_kind %}" id="strana">
<div class="container"> <div class="container">
<h2 class="lead page-subheading mb-4">{{ page.support_title }}</h2> <h2 class="lead page-subheading mb-4">{{ page.support_title }}</h2>
<p class="mb-4">{{ page.support_body }}</p> <p class="mb-4">{{ page.support_body }}</p>
...@@ -101,8 +100,20 @@ ...@@ -101,8 +100,20 @@
</section> </section>
{% endif %} {% endif %}
<section class="section--{% get_section_kind %}" id="kraje">
<div class="container">
<h2 class="lead page-subheading mb-4">{{ page.region_title }}</h2>
<p class="mb-4">{{ page.region_body }}</p>
<div class="row mb-4">
{% include "donate/region_map_snippet.html" with index_url=page.regions_page_url %}
</div> <!-- /row -->
</div> <!-- /container -->
</section>
{% if page.has_projects %} {% if page.has_projects %}
<section class="section--alternate" id="projekty"> <section class="section--{% get_section_kind %}" id="projekty">
<div class="container"> <div class="container">
<h2 class="lead page-subheading mb-4">{{ page.project_title }}</h2> <h2 class="lead page-subheading mb-4">{{ page.project_title }}</h2>
...@@ -118,25 +129,13 @@ ...@@ -118,25 +129,13 @@
<a href="{{ page.projects_page_url }}" class="btn btn-dark btn-lg my-2">Všechny projekty a kampaně <i class="icon-chevron-right ml-2"></i></a> <a href="{{ page.projects_page_url }}" class="btn btn-dark btn-lg my-2">Všechny projekty a kampaně <i class="icon-chevron-right ml-2"></i></a>
</div> <!-- /container --> </div> <!-- /container -->
</section> </section>
<section class="section--primary" id="kraje">
{% else %}
<section class="section--alternate" id="kraje">
{% endif %} {% endif %}
<div class="container">
<h2 class="lead page-subheading mb-4">{{ page.region_title }}</h2>
<p class="mb-4">{{ page.region_body }}</p>
<div class="row mb-4">
{% include "donate/region_map_snippet.html" with index_url=page.regions_page_url %}
</div> <!-- /row -->
</div> <!-- /container -->
{% for content in page.custom_blocks %} {% for content in page.custom_blocks %}
<section class="section--{% get_section_kind %} section--custom" id="custom">
{% include_block content %} {% include_block content %}
{% endfor %}
</section> </section>
{% endfor %}
</main> </main>
<!-- /CONTENT --> <!-- /CONTENT -->
......
from django import template
register = template.Library()
@register.simple_tag(takes_context=True)
def get_section_kind(context):
if "current_section" not in context or context["current_section"] == "primary":
context["current_section"] = "alternate"
else:
context["current_section"] = "primary"
return context["current_section"]
import wagtail.admin.rich_text.editors.draftail.features as draftail_features
from django.utils.html import escape from django.utils.html import escape
from wagtail import hooks from wagtail import hooks
from wagtail.admin.rich_text.converters.html_to_contentstate import (
InlineStyleElementHandler,
)
from wagtail.rich_text import LinkHandler from wagtail.rich_text import LinkHandler
from donate.constants import font_colors
class ExternalLinkHandler(LinkHandler): class ExternalLinkHandler(LinkHandler):
identifier = "external" identifier = "external"
...@@ -15,3 +21,33 @@ class ExternalLinkHandler(LinkHandler): ...@@ -15,3 +21,33 @@ class ExternalLinkHandler(LinkHandler):
@hooks.register("register_rich_text_features") @hooks.register("register_rich_text_features")
def register_external_link(features): def register_external_link(features):
features.register_link_type(ExternalLinkHandler) features.register_link_type(ExternalLinkHandler)
@hooks.register("register_rich_text_features")
def register_font_color_feature(features):
for color_name, color_value in font_colors:
feature_name = "font_color_" + color_value
type_ = "FONT_COLOR_" + color_value
tag = "span"
control = {
"type": type_,
"label": color_name,
"description": color_name + " text color",
"style": {"color": color_value},
}
features.register_editor_plugin(
"draftail", feature_name, draftail_features.InlineStyleFeature(control)
)
db_conversion = {
"from_database_format": {tag: InlineStyleElementHandler(type_)},
"to_database_format": {
"style_map": {
type_: {"element": tag, "props": {"style": "color: " + color_value}}
}
},
}
features.register_converter_rule("contentstate", feature_name, db_conversion)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment