Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • feat-more-blocks
  • feat-rework-election-page
  • feat/custom-css
  • feat/dary-improvements
  • feat/geo-feature-collections
  • feat/hideable-tweets
  • feat/instagram-feed
  • feat/people-octopus-imports
  • feat/pirstan-changes
  • feat/redesign-fixes-3
  • feat/redesign-improvements-10
  • feat/redesign-improvements-8
  • feat/separate-import-thread
  • feature/crypto-widget
  • features/add-custom-numbering-for-candidates
  • features/add-dynamic-candidate-numbers
  • features/add-embed-to-articles
  • features/add-feature-enlarging-sub-block
  • features/add-link-to-images
  • features/add-pdf-page
  • features/add-redirects
  • features/add-thumbnail-principle-to-uniweb-and-senate
  • features/add-timeline
  • features/add-typed-table
  • features/create-collapsible-extra-legal-info
  • features/create-mastodon-feed-block
  • features/create-wordcloud-from-article-page
  • features/donation-panel-should-be-optional
  • features/extend-hero-banner
  • features/fix-broken-calendar-categories
  • master
  • test
32 results

Target

Select target project
  • to/majak
  • b1242/majak
2 results
Select Git revision
  • fix1
  • localwebs
  • master
  • pdp
  • seo1
  • target-groups
  • test
7 results
Show changes
Showing
with 2862 additions and 0 deletions
from functools import cached_property
from django.conf import settings
from django.core.cache import cache
from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
from django.db import models
from django.http import HttpResponseRedirect
from django.shortcuts import redirect
from django.template.response import TemplateResponse
from modelcluster.fields import ParentalKey
from wagtail.admin.panels import (
FieldPanel,
InlinePanel,
MultiFieldPanel,
ObjectList,
PublishingPanel,
TabbedInterface,
)
from wagtail.fields import RichTextField, StreamField
from wagtail.images.blocks import ImageChooserBlock
from wagtail.models import Orderable, Page
from wagtailmetadata.models import MetadataPageMixin
from shared_legacy.models import (
ExtendedMetadataHomePageMixin,
ExtendedMetadataPageMixin,
SubpageMixin,
)
from shared_legacy.utils import get_subpage_url, make_promote_panels
from tuning import admin_help
from .blocks import (
CrowdfundingRewardBlock,
CustomContentBlock,
CustomLinkBlock,
DistrictDonationBlock,
MenuItemBlock,
MenuParentBlock,
PartySupportFormBlock,
ProjectIndexBlock,
)
from .forms import DonateForm
from .utils import get_donated_amount_from_api
class DonateFormMixin(models.Model):
"""Pages which has donate form. Must be in class definition before Page!"""
portal_project_id = models.IntegerField(
"ID projektu v darovacím portálu", blank=True, null=True
)
class Meta:
abstract = True
def serve(self, request, *args, **kwargs):
if request.method == "POST":
form = DonateForm(request.POST)
if form.is_valid():
url = form.get_redirect_url()
return redirect(url)
return super().serve(request, *args, **kwargs)
@property
def show_donate_form(self):
return bool(self.portal_project_id)
class DonateFormAmountsMixin(models.Model):
"""Amounts setup for donate forms."""
FIRST = 1
SECOND = 2
THIRD = 3
FOURTH = 4
FORM_CHOICES = [
(FIRST, "první"),
(SECOND, "druhá"),
(THIRD, "třetí"),
(FOURTH, "čtvrtá"),
]
form_amount_1 = models.IntegerField("pevná částka 1", default=100)
form_amount_2 = models.IntegerField("pevná částka 2", default=200)
form_amount_3 = models.IntegerField("pevná částka 3", default=500)
form_amount_4 = models.IntegerField("pevná částka 4", default=1000)
form_preselected = models.IntegerField(
"výchozí částka", default=FIRST, choices=FORM_CHOICES
)
form_monthly_amount_1 = models.IntegerField("měsíční částka 1", default=100)
form_monthly_amount_2 = models.IntegerField("měsíční částka 2", default=200)
form_monthly_amount_3 = models.IntegerField("měsíční částka 3", default=500)
form_monthly_amount_4 = models.IntegerField("měsíční částka 4", default=1000)
form_monthly_preselected = models.IntegerField(
"výchozí měsíční částka", default=FIRST, choices=FORM_CHOICES
)
class Meta:
abstract = True
class DonateHomePage(
DonateFormMixin,
DonateFormAmountsMixin,
Page,
ExtendedMetadataHomePageMixin,
MetadataPageMixin,
):
### FIELDS
# menu
menu = StreamField(
[
("menu_item", MenuItemBlock()),
(
"menu_parent",
MenuParentBlock(),
),
], # , ("menu_parent", MenuParentBlock())
verbose_name="Menu",
blank=True,
use_json_field=True,
)
# lead section
lead_title = models.CharField("hlavní nadpis", max_length=250, blank=True)
lead_body = RichTextField("hlavní popis", blank=True)
lead_video = models.URLField("video na youtube", blank=True, null=True)
lead_preview = models.ForeignKey(
"wagtailimages.Image",
on_delete=models.PROTECT,
blank=True,
null=True,
verbose_name="náhled videa",
)
# main section
content_blocks = StreamField(
[
("project_index", ProjectIndexBlock()),
("district_donation", DistrictDonationBlock()),
("party_support_form", PartySupportFormBlock()),
("custom", CustomContentBlock()),
],
blank=True,
use_json_field=True,
verbose_name="Obsah",
)
# footer
transparency_footer_items = StreamField(
[("transparency_url", CustomLinkBlock(label="Odkaz"))],
blank=True,
use_json_field=True,
verbose_name="Odkazy v patičkové sekci Otevřenost",
)
# 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_links = StreamField(
[("custom_link", CustomLinkBlock(label="Vlastní odkaz"))],
verbose_name="Vlastní odkazy",
blank=True,
use_json_field=True,
)
facebook = models.URLField("Facebook URL", blank=True, null=True)
instagram = models.URLField("Instagram URL", blank=True, null=True)
twitter = models.URLField("Twitter URL", blank=True, null=True)
flickr = models.URLField("Flickr URL", blank=True, null=True)
matomo_id = models.IntegerField(
"Matomo ID pro sledování návštěvnosti", blank=True, null=True
)
### PANELS
content_panels = Page.content_panels + [
MultiFieldPanel(
[
FieldPanel("lead_title"),
FieldPanel("lead_body"),
FieldPanel("lead_video"),
FieldPanel("lead_preview"),
],
"hlavní sekce",
),
FieldPanel("content_blocks"),
FieldPanel("transparency_footer_items"),
]
menu_panels = [
MultiFieldPanel(
[
FieldPanel("menu"),
],
heading="Nastavení menu",
),
]
promote_panels = make_promote_panels(admin_help.build(admin_help.IMPORTANT_TITLE))
settings_panels = [
MultiFieldPanel(
[FieldPanel("custom_links")],
"vlastní odkazy",
),
MultiFieldPanel(
[
FieldPanel("facebook"),
FieldPanel("instagram"),
FieldPanel("twitter"),
FieldPanel("flickr"),
],
"sociální sítě",
),
FieldPanel("matomo_id"),
FieldPanel("title_suffix"),
MultiFieldPanel(
[
FieldPanel("portal_project_id"),
FieldPanel("form_amount_1"),
FieldPanel("form_amount_2"),
FieldPanel("form_amount_3"),
FieldPanel("form_amount_4"),
FieldPanel("form_preselected"),
FieldPanel("form_monthly_amount_1"),
FieldPanel("form_monthly_amount_2"),
FieldPanel("form_monthly_amount_3"),
FieldPanel("form_monthly_amount_4"),
FieldPanel("form_monthly_preselected"),
],
"nastavení darů",
),
FieldPanel("faq_page"),
]
### EDIT HANDLERS
edit_handler = TabbedInterface(
[
ObjectList(content_panels, heading="Obsah"),
ObjectList(promote_panels, heading="Metadata"),
ObjectList(settings_panels, heading="Nastavení"),
ObjectList(menu_panels, heading="Menu"),
]
)
### RELATIONS
subpage_types = [
"donate.DonateRegionIndexPage",
"donate.DonateProjectIndexPage",
"donate.DonateInfoPage",
"donate.DonateTextPage",
]
### OTHERS
# flag for rendering anchor links in menu
is_home = True
class Meta:
verbose_name = "Dary"
@property
def root_page(self):
return self
def get_404_response(self, request):
return HttpResponseRedirect(self.full_url)
@cached_property
def info_page_url(self):
return get_subpage_url(self, DonateInfoPage)
@cached_property
def project_indexes(self):
return DonateProjectIndexPage.objects.child_of(self).live()
@cached_property
def regions_page_url(self):
return get_subpage_url(self, DonateRegionIndexPage)
@cached_property
def has_projects(self):
return self.get_descendants().type(DonateProjectPage).live().exists()
def get_context(self, request):
context = super().get_context(request)
context["regions"] = (
self.get_descendants().type(DonateRegionPage).live().specific()
)
return context
class DonateRegionIndexPage(
Page, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin
):
### PANELS
promote_panels = make_promote_panels()
settings_panels = []
### RELATIONS
parent_page_types = ["donate.DonateHomePage"]
subpage_types = ["donate.DonateRegionPage"]
### OTHERS
# flag for rendering anchor links in menu
is_home = False
class Meta:
verbose_name = "Přehled krajů"
def get_context(self, request):
context = super().get_context(request)
context["regions"] = self.get_children().live().specific()
return context
class DonateRegionPage(
DonateFormMixin,
DonateFormAmountsMixin,
Page,
ExtendedMetadataPageMixin,
SubpageMixin,
MetadataPageMixin,
):
### FIELDS
main_title = models.CharField("hlavní nadpis na stránce", max_length=250)
body = RichTextField("obsah")
### PANELS
content_panels = Page.content_panels + [
FieldPanel("main_title"),
FieldPanel("body"),
]
promote_panels = make_promote_panels(
admin_help.build(
"Pokud není zadán <strong>Titulek stránky</strong>, použije "
"se <strong>Hlavní nadpis</strong> (tab obsah).",
admin_help.NO_SEARCH_IMAGE,
)
)
settings_panels = [
MultiFieldPanel(
[
FieldPanel("portal_project_id"),
FieldPanel("form_amount_1"),
FieldPanel("form_amount_2"),
FieldPanel("form_amount_3"),
FieldPanel("form_amount_4"),
FieldPanel("form_preselected"),
FieldPanel("form_monthly_amount_1"),
FieldPanel("form_monthly_amount_2"),
FieldPanel("form_monthly_amount_3"),
FieldPanel("form_monthly_amount_4"),
FieldPanel("form_monthly_preselected"),
],
"nastavení darů",
),
]
### RELATIONS
parent_page_types = ["donate.DonateRegionIndexPage"]
subpage_types = ["donate.DonateTargetedDonationsPage"]
### OTHERS
# flag for rendering anchor links in menu
is_home = False
class Meta:
verbose_name = "Kraj"
@cached_property
def targeted_donations_page_url(self):
return get_subpage_url(self, DonateTargetedDonationsPage)
@cached_property
def has_targeted_donations(self):
return self.get_descendants().type(DonateTargetedDonationsPage).live().exists()
class DonateProjectIndexPage(
Page, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin
):
### FIELDS
heading = models.CharField("Hlavní nadpis", max_length=32)
support_heading = models.CharField("Podpoř projekt nadpis", max_length=32)
support_description = RichTextField("Podpoř projekt popis")
### PANELS
content_panels = Page.content_panels + [
FieldPanel("heading"),
MultiFieldPanel(
[
FieldPanel("support_heading"),
FieldPanel("support_description"),
],
"Informace v sekci 'podpoř projekt' na homepage",
),
]
promote_panels = make_promote_panels()
settings_panels = []
### RELATIONS
parent_page_types = ["donate.DonateHomePage"]
subpage_types = ["donate.DonateProjectPage"]
### OTHERS
# flag for rendering anchor links in menu
is_home = False
@property
def projects(self):
return (
DonateProjectPage.objects.child_of(self)
.filter()
.distinct()
.order_by("-is_sticky", "-date")
.live()
)[:3]
class Meta:
verbose_name = "Přehled projektů"
def get_context(self, request):
context = super().get_context(request)
paginator = Paginator(
self.get_children().live().specific().order_by("-donateprojectpage__date"),
6,
)
page = request.GET.get("page")
try:
projects = paginator.page(page)
except PageNotAnInteger:
projects = paginator.page(1)
except EmptyPage:
projects = paginator.page(paginator.num_pages)
context["projects"] = projects
return context
class DonateProjectPage(
DonateFormMixin,
DonateFormAmountsMixin,
Page,
ExtendedMetadataPageMixin,
SubpageMixin,
MetadataPageMixin,
):
TITLE_PROJECT = "Daruj na projekt"
### FIELDS
date = models.DateField("Běží od")
until = models.DateField("Běží do", null=True, blank=True)
perex = models.TextField("Krátký popis")
body = RichTextField("Obsah")
is_new = models.BooleanField('Označení "nový projekt"', default=False)
is_sticky = models.BooleanField(
"Je připnutý",
help_text="Pokud je projekt připnutý, na domovské stránce se v seznamech projektů udrží na začátku.",
default=False,
)
allow_periodic_donations = models.BooleanField(
"Umožnit pravidelné dary", default=False
)
photo = models.ForeignKey(
"wagtailimages.Image",
verbose_name="Fotka",
on_delete=models.PROTECT,
null=True,
blank=True,
)
gallery = StreamField(
[("photo", ImageChooserBlock(label="fotka"))],
verbose_name="galerie fotek",
blank=True,
use_json_field=True,
)
form_title = models.CharField(
"Titulek formuláře",
help_text="Např. 'Daruj na projekt', 'Daruj na kampaň', ...",
max_length=32,
default=TITLE_PROJECT,
)
expected_amount = models.IntegerField("Očekávaná částka", blank=True, null=True)
donated_amount = models.IntegerField("Vybraná částka", blank=True, null=True)
coalition_design = models.BooleanField("Koaliční design", default=False)
# we will use photo as search image
search_image = None
crowdfunding = StreamField(
[("reward_block", CrowdfundingRewardBlock())],
verbose_name="Crowdfunding bloky",
blank=True,
use_json_field=True,
)
### PANELS
content_panels = Page.content_panels + [
MultiFieldPanel(
[
FieldPanel("is_new"),
FieldPanel("is_sticky"),
FieldPanel("perex"),
FieldPanel("photo"),
],
"Info do přehledu projektů",
),
MultiFieldPanel(
[
FieldPanel("date"),
FieldPanel("until"),
],
"Časový interval projektu",
),
FieldPanel("body"),
FieldPanel("gallery"),
]
promote_panels = make_promote_panels(
admin_help.build(
"Pokud není zadán <strong>Titulek stránky</strong>, použije "
"se „Podpoř projekt <strong>Název</strong>“ (tab obsah).",
admin_help.NO_DESCRIPTION_USE_PEREX,
),
search_image=False,
)
settings_panels = [
PublishingPanel(),
MultiFieldPanel(
[
FieldPanel("form_title"),
FieldPanel("expected_amount"),
FieldPanel("portal_project_id"),
FieldPanel("allow_periodic_donations"),
FieldPanel("form_amount_1"),
FieldPanel("form_amount_2"),
FieldPanel("form_amount_3"),
FieldPanel("form_amount_4"),
FieldPanel("form_preselected"),
FieldPanel("form_monthly_amount_1"),
FieldPanel("form_monthly_amount_2"),
FieldPanel("form_monthly_amount_3"),
FieldPanel("form_monthly_amount_4"),
FieldPanel("form_monthly_preselected"),
],
"nastavení darů",
),
MultiFieldPanel(
[
FieldPanel("crowdfunding"),
],
"Nastavení crowdfundingových odměn",
),
FieldPanel("coalition_design"),
]
### RELATIONS
parent_page_types = ["donate.DonateProjectIndexPage"]
subpage_types = ["donate.DonateSecretPreviewPage"]
### OTHERS
# flag for rendering anchor links in menu
is_home = False
class Meta:
verbose_name = "Projekt"
def get_meta_image(self):
return self.photo
def get_meta_description(self):
if self.search_description:
return self.search_description
if len(self.perex) > 150:
return str(self.perex)[:150] + "..."
return self.perex
def get_donated_amount(self):
if self.portal_project_id is None:
return 0
# instance caching for multiple method calls during one request
if not hasattr(self, "_donated_amount"):
# cache portal API calls (defaults to 5 min)
key = f"donated_amount_{self.portal_project_id}"
amount = cache.get(key)
if amount is None:
amount = get_donated_amount_from_api(self.portal_project_id)
if amount is not None:
# save amount into database to be used if next API calls fails
self.donated_amount = amount
self.save()
cache.set(key, amount, settings.DONATE_PORTAL_API_CACHE_TIMEOUT)
self._donated_amount = self.donated_amount or 0
return self._donated_amount
@property
def donated_percentage(self):
if not self.expected_amount:
return 0
if self.get_donated_amount() >= self.expected_amount:
return 100
return round(self.get_donated_amount() / self.expected_amount * 100)
def get_context(self, request):
context = super().get_context(request)
context["other_projects"] = (
self.get_siblings(inclusive=False)
.live()
.specific()
.order_by("-donateprojectpage__date")[:3]
)
return context
def get_template(self, request, *args, **kwargs):
if self.coalition_design:
return "donate/donate_project_page_coalition.html"
return super().get_template(request, *args, **kwargs)
class DonateTextPage(Page, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin):
### FIELDS
body = RichTextField("obsah", blank=True)
### PANELS
content_panels = Page.content_panels + [FieldPanel("body")]
promote_panels = make_promote_panels()
settings_panels = []
### RELATIONS
parent_page_types = [
"donate.DonateHomePage",
"donate.DonateTextPage",
"donate.DonateInfoPage",
]
subpage_types = ["donate.DonateTextPage", "donate.DonateInfoPage"]
### OTHERS
# flag for rendering anchor links in menu
is_home = False
class Meta:
verbose_name = "Stránka s textem"
class DonateInfoPage(
DonateFormMixin,
DonateFormAmountsMixin,
Page,
ExtendedMetadataPageMixin,
SubpageMixin,
MetadataPageMixin,
):
### FIELDS
body = RichTextField("obsah", blank=True)
### PANELS
content_panels = Page.content_panels + [FieldPanel("body")]
promote_panels = make_promote_panels()
settings_panels = [
PublishingPanel(),
MultiFieldPanel(
[
FieldPanel("form_amount_1"),
FieldPanel("form_amount_2"),
FieldPanel("form_amount_3"),
FieldPanel("form_amount_4"),
FieldPanel("form_preselected"),
FieldPanel("form_monthly_amount_1"),
FieldPanel("form_monthly_amount_2"),
FieldPanel("form_monthly_amount_3"),
FieldPanel("form_monthly_amount_4"),
FieldPanel("form_monthly_preselected"),
],
"nastavení darů",
),
]
### RELATIONS
parent_page_types = [
"donate.DonateHomePage",
"donate.DonateTextPage",
"donate.DonateInfoPage",
]
subpage_types = ["donate.DonateTextPage", "donate.DonateInfoPage"]
### OTHERS
# flag for rendering anchor links in menu
is_home = False
class Meta:
verbose_name = "Infostránka s formulářem"
# use portal_project_id from home page
@cached_property
def portal_project_id(self):
return self.get_parent().specific.portal_project_id
class TargetedDonation(Orderable):
page = ParentalKey(
"donate.DonateTargetedDonationsPage",
on_delete=models.CASCADE,
related_name="targeted_donations",
)
is_main = models.BooleanField(
"hlavní dar", default=False, help_text="zobrazené samostatně nahoře"
)
title = models.CharField("název", max_length=255)
description = models.CharField(
"popis",
null=True,
blank=True,
max_length=255,
help_text="zobrazí se jen u hlavních darů",
)
portal_project_id = models.IntegerField("ID projektu v darovacím portálu")
panels = [
FieldPanel("portal_project_id"),
FieldPanel("title"),
FieldPanel("description"),
FieldPanel("is_main"),
]
class DonateTargetedDonationsPage(
DonateFormMixin,
DonateFormAmountsMixin,
Page,
ExtendedMetadataPageMixin,
SubpageMixin,
MetadataPageMixin,
):
### FIELDS
# page does not have specific portal_project_id
portal_project_id = None
### PANELS
content_panels = Page.content_panels + [
MultiFieldPanel([InlinePanel("targeted_donations")], "adresné dary"),
]
promote_panels = make_promote_panels()
settings_panels = [
PublishingPanel(),
MultiFieldPanel(
[
FieldPanel("form_amount_1"),
FieldPanel("form_amount_2"),
FieldPanel("form_amount_3"),
FieldPanel("form_amount_4"),
FieldPanel("form_preselected"),
FieldPanel("form_monthly_amount_1"),
FieldPanel("form_monthly_amount_2"),
FieldPanel("form_monthly_amount_3"),
FieldPanel("form_monthly_amount_4"),
FieldPanel("form_monthly_preselected"),
],
"nastavení darů",
),
]
### RELATIONS
parent_page_types = ["donate.DonateRegionPage"]
subpage_types = []
### OTHERS
# flag for rendering anchor links in menu
is_home = False
class Meta:
verbose_name = "Adresné dary"
def get_context(self, request):
context = super().get_context(request)
try:
selected_project_id = int(request.GET.get("p", 0))
selected_target = self.targeted_donations.get(
portal_project_id=selected_project_id
)
except (ValueError, TargetedDonation.DoesNotExist):
selected_target = None
if selected_target:
context["main_targets"] = [selected_target]
context["other_targets"] = []
context["is_preselected"] = True
else:
context["main_targets"] = self.targeted_donations.filter(is_main=True)
context["other_targets"] = self.targeted_donations.filter(is_main=False)
context["is_preselected"] = False
if context["main_targets"]:
context["initial_project_id"] = context["main_targets"][0].portal_project_id
elif context["other_targets"]:
context["initial_project_id"] = context["other_targets"][
0
].portal_project_id
else:
context["initial_project_id"] = 0
return context
class DonateSecretPreviewPage(Page):
max_count_per_parent = 1
parent_page_types = [
"donate.DonateProjectPage",
]
subpage_types = []
class Meta:
verbose_name = "Skrytá stránka pro náhled konceptu"
def get_context(self, request, *args, **kwargs):
parent_page = self.get_parent().get_latest_revision_as_object()
context = parent_page.get_context(request=request)
context.update({"disable_robots": True})
return context
def get_template(self, request, *args, **kwargs):
parent_page = self.get_parent().get_latest_revision_as_object()
return parent_page.get_template(request, *args, **kwargs)
def serve(self, request, *args, **kwargs):
return TemplateResponse(
request,
self.get_template(request, *args, **kwargs),
self.get_context(request, *args, **kwargs),
)
@font-face {
font-family: 'icomoon';
src: url('../../icons/icomoon.eot?qfo5nx');
src: url('../../icons/icomoon.eot?qfo5nx#iefix') format('embedded-opentype'),
url('../../icons/icomoon.ttf?qfo5nx') format('truetype'),
url('../../icons/icomoon.woff?qfo5nx') format('woff'),
url('../../icons/icomoon.svg?qfo5nx#icomoon') format('svg');
font-weight: normal;
font-style: normal;
font-display: block;
}
i[class^="icon"] {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'icomoon' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-heart:before {
content: "\f004";
}
.icon-linkedin:before {
content: "\f08c";
}
.icon-twitter:before {
content: "\f099";
}
.icon-youtube:before {
content: "\f167";
}
.icon-instagram:before {
content: "\f16d";
}
.icon-flickr:before {
content: "\f16e";
}
.icon-facebook-f:before {
content: "\f39e";
}
.icon-check:before {
content: "\f00c";
}
.icon-chevron-left:before {
content: "\f053";
}
.icon-chevron-right:before {
content: "\f054";
}
.icon-chevron-down:before {
content: "\e925";
}
.icon-external-link:before {
content: "\f08e";
}
.icon-calendar:before {
content: "\f133";
}
/*
*
* Custom styling for Piráti donate website
* Author: Daniel Hlavacek
* Author's website: https://danielhlavacek.cz/
*
*/
/* GENERAL */
body {
font-size: 16px;
/*padding-top: 79px;*/
font-family: "Roboto Condensed", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
a:hover {
color: #757575;
}
/* HEADINGS */
h1, h1.lead {
font-size: 3.6rem;
}
h2, h2.lead {
font-size: 2.8rem;
}
h3, h3.lead {
font-size: 2.1rem;
}
h4, h4.lead {
font-size: 1.65rem;
}
h5, h5.lead {
font-size: 1.3rem;
}
h6, h6.lead {
font-size: 1rem;
}
@media screen and (max-width: 500px) {
h1, h1.lead {
font-size: 3rem;
}
h2, h2.lead {
font-size: 2.4rem;
}
h3, h3.lead {
font-size: 1.85rem;
}
h4, h4.lead {
font-size: 1.4rem;
}
h5, h5.lead {
font-size: 1.2rem;
}
h6, h6.lead {
font-size: 1rem;
}
}
h1.lead, h2.lead, h3.lead, h4.lead, h5.lead, h6.lead {
font-family: "Bebas Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
line-height: 1;
text-transform: uppercase;
}
.lead-small {
font-size: 1.1rem !important
}
h1.homepage-heading {
font-size: 6rem;
}
h1.heading {
font-size: 4rem;
}
h2.page-subheading {
font-size: 4rem;
}
h3.page-subheading {
font-size: 3.8rem;
}
@media screen and (max-width: 1200px) {
h1.homepage-heading {
font-size: 5.4rem;
}
h1.heading {
font-size: 4rem;
}
h2.page-subheading {
font-size: 4rem;
}
h3.page-subheading {
font-size: 3.6rem;
}
}
@media screen and (max-width: 991px) {
h1.homepage-heading {
font-size: 4.4rem;
}
h1.heading {
font-size: 3.7rem;
}
h2.page-subheading {
font-size: 3.7rem;
}
h3.page-subheading {
font-size: 3.2rem;
}
}
@media screen and (max-width: 440px) {
h1.homepage-heading {
font-size: 3.8rem;
}
h1.heading {
font-size: 3.4rem;
}
h2.page-subheading {
font-size: 3.4rem;
}
h3.page-subheading {
font-size: 3rem;
}
}
@media screen and (max-width: 370px) {
h1.homepage-heading {
font-size: 3.6rem;
}
h2.page-subheading {
font-size: 3rem;
}
h3.page-subheading {
font-size: 2.6rem;
}
}
@media screen and (max-width: 330px) {
h1.homepage-heading {
font-size: 3rem;
}
h2.page-subheading {
font-size: 2.8rem;
}
h3.page-subheading {
font-size: 2.3rem;
}
}
/* BUTTONS */
.btn-dark {
background: #000000;
}
.btn-light {
background: #CCCCCC;
}
.btn-dark:hover, .btn-light:hover {
background: #222222;
color: #FFFFFF;
}
.btn {
border-radius: 0;
padding: 0.7rem 1.6rem;
}
.btn {
font-family: "Roboto Condensed", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
.btn-lg {
border-radius: 0;
padding: 0.7rem 3rem;
}
/* TOOLS AND FIXES */
.lazyload, .lazyloading {
opacity: 0;
}
.lazyloaded {
opacity: 1;
transition: opacity .5s;
}
/* SECTIONS */
.section--primary {
background: #ffffff;
color: #000000;
}
.section--alternate {
background: #f7f7f7;
color: #000000;
}
.section--black {
background: #000000;
color: #ffffff;
}
.section--custom {
display: flow-root;
}
/* SECTION SIZING */
section {
padding: 4rem 0rem;
}
.section--lead {
padding: 2rem 0rem;
}
.section--no-bottom-padding {
padding-bottom: 0rem;
}
.section--form {
padding-top: 2rem;
}
@media screen and (max-width: 991px) {
section {
padding: 3.5rem 0rem;
}
.section--lead {
padding: 4rem 0rem;
}
}
@media screen and (max-width: 768px) {
section {
padding: 3rem 0rem;
}
.section--lead {
padding: 3.5rem 0rem;
}
}
@media screen and (max-width: 575px) {
section {
padding: 2.5rem 0rem;
}
.section--lead {
padding: 3rem 0rem;
}
}
/* HEADER */
.navbar {
background: #212121;
}
@media screen and (max-width: 991.99px) {
.navbar {
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: 1030;
}
main {
margin-top: 90px;
}
}
.navbar-dark .navbar-toggler-icon {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgb(255, 255, 255)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-dark .navbar-nav .nav-link {
color: rgba(255,255,255);
}
.navbar-dark .navbar-toggler {
color: #ffffff;
border: none;
margin-right: -1rem;
}
.nav-link {
display: block;
padding: .5rem 1rem;
text-transform: uppercase;
font-family: "Roboto Condensed", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1.2rem;
}
.navbar-brand {
font-family: "Bebas Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 2.2rem;
text-transform: uppercase;
}
@media screen and (max-width: 420px) {
.navbar-brand {
font-size: 2rem;
}
}
@media screen and (max-width: 390px) {
.navbar-brand {
font-size: 1.8rem;
}
}
@media screen and (max-width: 350px) {
.navbar-brand {
font-size: 1.6rem;
}
}
.brand-wrapper {
height: 90px;
display: flex;
align-items: center;
justify-content: flex-start;
}
.brand-wrapper img {
width: 160px;
}
@media screen and (max-width: 575px) {
.brand-wrapper {
height: 74px;
}
.brand-wrapper img {
width: 150px;
}
}
@media screen and (min-width: 1200px) {
.navbar-expand-xl .navbar-nav .nav-link {
padding-right: 0.8rem;
padding-left: 0.8rem;
}
}
@media screen and (min-width: 576px) and (max-width: 1199.99px) {
.navbar .navbar-collapse .navbar-nav {
margin-top: 1rem;
margin-bottom: 1rem;
}
}
.header__socials {
display: flex;
margin-left: -0.5rem;
}
.header__socials a {
padding: 0.5rem;
}
.header__socials a i {
font-size: 1rem;
color: white;
}
.header__socials.header__socials--mobile {
margin-left: -0.7rem;
padding-top: 0.4rem;
}
.header__socials.header__socials--mobile a {
padding: 0.7rem;
}
.header__socials.header__socials--mobile a i {
font-size: 1.3rem;
color: rgba(255,255,255,.5);
}
.header_link.header_link--desktop {
color: white;
}
.header_link.header_link--mobile {
color: rgba(255,255,255,.5);
}
/*--/ Hamburger Navbar /--*/
.navbar-toggler {
position: relative;
}
.navbar-toggler:focus,
.navbar-toggler:active {
outline: 0;
}
.navbar-toggler span {
display: block;
background-color: #ffffff;
height: 2px;
width: 30px;
margin-top: 8px;
margin-bottom: 8px;
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
left: 0;
opacity: 1;
}
.navbar-toggler span:nth-child(1),
.navbar-toggler span:nth-child(3) {
transition: -webkit-transform .35s ease-in-out;
transition: transform .35s ease-in-out;
transition: transform .35s ease-in-out, -webkit-transform .35s ease-in-out;
}
.navbar-toggler:not(.collapsed) span:nth-child(1) {
position: absolute;
left: 12px;
top: 10px;
-webkit-transform: rotate(135deg);
transform: rotate(135deg);
opacity: 0.9;
}
.navbar-toggler:not(.collapsed) span:nth-child(2) {
height: 12px;
visibility: hidden;
background-color: transparent;
}
.navbar-toggler:not(.collapsed) span:nth-child(3) {
position: absolute;
left: 12px;
top: 10px;
-webkit-transform: rotate(-135deg);
transform: rotate(-135deg);
opacity: 0.9;
}
/* FOOTER */
.footer__top {
background: #212121;
}
.footer__bottom {
background: #000000;
}
footer {
color: #8a8a8a;
}
footer a {
color: #8a8a8a;
}
footer a:hover {
color: #ffffff;
text-decoration: none;
}
footer h1, footer h2, footer h3, footer h4, footer h5, footer h6 {
color: #ffffff;
}
.footer__top {
padding: 4rem 0rem;
}
@media screen and (max-width: 991px) {
.footer__top {
padding: 3.5rem 0rem;
}
}
@media screen and (max-width: 768px) {
.footer__top {
padding: 3rem 0rem;
}
}
@media screen and (max-width: 575px) {
.footer__top {
padding: 2.5rem 0rem;
}
}
.footer__bottom {
padding: 2rem 0rem;
}
.footer__bottom a {
border-bottom: 1px dotted;
}
.footer__bottom a:hover {
border-bottom: none;
text-decoration: none;
color: #8a8a8a;
}
.footer__list-heading {
text-transform: uppercase;
margin-bottom: 1.6rem;
}
.footer__menu {
padding-left: 0;
list-style: none;
}
.footer__menu li {
padding: 0.15rem 0;
}
.footer__logo img {
width: 180px;
}
/* UVOD */
.uvod__image-wrapper {
max-width: 180px;
display: inline-block;
}
.uvod__button {
margin-right: 2rem;
}
/* PROJEKTY */
.project {
box-shadow: 0 .25rem 1.875rem rgba(42, 53, 79, .28);
border-radius: 0;
border: 0;
height: 100%;
color: black;
transition: all 0.5s ease-in-out;
}
.project:hover {
text-decoration: none;
box-shadow: 0 .25rem 1.875rem rgba(42, 53, 79, 0.73);
color: black;
}
.project:hover .card-img-top {
opacity: 0.9;
}
.project .card-footer {
border-radius: 0;
border: 0;
}
.card-footer .text-muted {
color: #707070 !important;
}
.project .card-img, .project .card-img-top {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.project .card-body h5 {
font-weight: bold;
}
.project .card-body p:last-child {
margin-bottom: 0;
}
.project .card-body p {
color: #797676;
white-space: pre-line;
}
.project .card-footer p {
margin-bottom: 0;
}
.project .progress-bar {
background-color: #04a548;
}
.project .progress {
margin-bottom: 0.8rem;
}
.project__flags {
position: absolute;
top: 0;
margin-bottom: 0;
z-index: 1;
left: -0.25rem;
display: flex;
flex-direction: column;
align-items: flex-start;
list-style: none;
padding-left: 0;
}
.project__flag {
margin-top: .5rem;
color: #fff;
background: #2fb5d2;
padding: .25rem .6rem;
font-weight: bold;
}
.project__flag.almost {
background: #04a548;
}
.project__flag.new {
background: #04a548;
}
.project-images {
margin-right: -7.5px;
margin-left: -7.5px;
}
.project-images > div{
padding-right: 6.25px;
padding-left: 6.25px;
margin-bottom: 15px;
}
.project-donate-form .progress-bar {
background-color: #04a548;
}
/* KRAJE */
.region {
box-shadow: 0 .25rem 1.875rem rgba(42, 53, 79, .28);
border-radius: 0;
border: 0;
height: 100%;
color: black;
transition: all 0.5s ease-in-out;
}
.region:hover {
text-decoration: none;
box-shadow: 0 .25rem 1.875rem rgba(42, 53, 79, 0.73);
color: black;
}
.region:hover .card-img-top {
opacity: 0.9;
}
.region .card-img, .region .card-img-top {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.region .card-body h5 {
font-weight: bold;
}
.region .card-body p:last-child {
margin-bottom: 0;
}
.region .card-body p {
color: #797676;
}
/* DONATE FORM */
.donate-form {
display: flex;
box-shadow: 0 .25rem 1.875rem rgba(42, 53, 79, .28);
}
.donate-form__left {
color: white;
flex: 0 0 auto;
justify-content: space-between;
display: flex;
flex-direction: column;
}
.donate-form__right {
width: 100%;
padding: 1.8rem;
}
.custom-control-input:checked ~ .custom-control-label::before {
color: #fff;
border-color: #d02d40;
background-color: #d02d40;
}
.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
color: #fff;
background-color: #b3ffd1;
border-color: #b3ffd1;
}
.custom-control-input:focus ~ .custom-control-label::before {
box-shadow: 0 0 0 .2rem rgba(0, 255, 147, 0.25);
}
.custom-control-label {
line-height: 1.2;
padding-top: .7rem;
}
.custom-control-label::after {
top: .5rem;
left: -2.5rem;
width: 2rem;
height: 2rem;
}
.custom-control-label::before {
top: .5rem;
left: -2.5rem;
width: 2rem;
height: 2rem;
}
.custom-control-label-for-select {
line-height: 1;
padding-top: 0.4rem;
}
.custom-control-select {
padding: 0.3rem;
}
.custom-control-input {
width: 2rem;
height: 2.5rem;
}
.custom-control {
min-height: 2.5rem;
padding-left: 2.5rem;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-append > .input-group-text {
border-radius: 0;
}
.form-control-lg {
border-radius: 0;
}
.form-control:focus {
border-color: #28a745;
box-shadow: 0 0 0 .2rem rgba(43, 174, 70, 0.25);
}
@media screen and (min-width: 1200px) {
.donate-form__left {
width: 16rem;
}
}
@media screen and (max-width: 991px) {
.donate-form {
flex-direction: column;
}
.donate-form__left {
flex-direction: row;
align-items: center;
}
.donate-form__icon {
max-width: 12rem;
order: 1;
margin: 0 auto;
}
.donate-form__left-content {
order: 0;
}
}
.donate-form .custom-amount {
max-width: 15rem;
}
/* REGION DONATE FORM */
.region-donate-form {
display: flex;
box-shadow: 0 .25rem 1.875rem rgba(42, 53, 79, .28);
flex-direction: column;
}
.region-donate-form__left {
background: #090A0B;
color: white;
padding: 1.8rem;
flex: 0 0 auto;
justify-content: space-between;
display: flex;
flex-direction: row;
align-items: center;
}
.region-donate-form__icon {
max-width: 2.5rem;
margin-bottom: 0rem;
order: 1;
margin-left: 1.8rem;
}
.region-donate-form__right {
width: 100%;
padding: 1.8rem;
}
/* PROJECT DONATE FORM */
.project-donate-form {
display: flex;
box-shadow: 0 .25rem 1.875rem rgba(42, 53, 79, .28);
flex-direction: column;
}
.project-donate-form__left {
background: #090A0B;
color: white;
padding: 1.8rem;
flex: 0 0 auto;
justify-content: space-between;
display: flex;
flex-direction: row;
align-items: center;
}
.project-donate-form__icon {
max-width: 2.5rem;
margin-bottom: 0rem;
order: 1;
margin-left: 1.8rem;
}
.project-donate-form__right {
width: 100%;
padding: 1.8rem;
}
@media screen and (max-width: 991px) {
.project-donate-form__left {
display: none;
}
}
/* FOOTER */
.socials {
display: flex;
margin-left: -0.8rem;
}
.socials a {
padding: 0.8rem;
}
.socials a:last-child {
margin-right: 0;
}
.socials a i {
font-size: 1.4rem;
color: white;
}
/* PAGINATION */
.page-link {
padding: .8rem 1.1rem;
color: #333;
background-color: #f3f3f3;
border: 1px solid #f3f3f3;
font-weight: bold;
}
.page-link:hover {
color: #333;
background-color: #e9ecef;
border-color: #e9ecef;
}
.page-link:focus {
box-shadow: 0 0 0 .2rem rgba(168, 168, 168, 0.25);
}
.page-item {
margin-right: 0.5rem;
}
.page-item:last-child {
margin-right: 0;
}
.page-item.active .page-link {
color: #fff;
background-color: #333;
border-color: #333;
}
.page-item:first-child .page-link {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.page-item:last-child .page-link {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
/* PROJECT */
.project__header {
padding: 4rem 0 2rem 0;
}
.project__date {
margin-bottom: 0;
color: #707070;
}
.project__badges .badge {
font-size: 1rem;
background: white;
border-radius: 0;
padding: 0.8rem 1.3rem;
font-weight: bold;
}
.badge.almost {
background: #04a548;
color: white;
}
.badge.new {
background: #e1242a;
color: white;
}
/* SHARING BOX */
.article__sharing-box {
box-shadow: 0 .25rem 1.875rem rgba(42, 53, 79, .28);
border: none;
border-radius: 0;
}
.article__sharing-box h3 {
margin-bottom: 0;
}
.article__sharing-box .icon i {
font-size: 2.4rem;
}
.article__sharing-box .icon {
margin-bottom: 2.8rem;
}
.article__sharing-box .card-body {
padding: 2rem;
margin-bottom: 1rem;
}
.btn-facebook {
color: #fff;
background-color: #3b5998;
border-color: #3b5998;
}
.btn-twitter {
color: #fff;
background-color: #55acee;
border-color: #55acee;
}
.btn-linkedin {
color: #fff;
background-color: #007bb5;
border-color: #007bb5;
}
.btn-facebook:hover {
color: #fff;
background-color: #253860;
border-color: #253860;
}
.btn-twitter:hover {
color: #fff;
background-color: #448cc4;
border-color: #448cc4;
}
.btn-linkedin:hover {
color: #fff;
background-color: #006291;
border-color: #006291;
}
.sharing-buttons {
display: flex;
justify-content: space-between;
}
.sharing-buttons a {
flex: 1;
margin-right: 8px;
padding: .375rem .75rem;
}
.sharing-buttons a:last-child {
margin-right: 0;
}
.sharing-box__content {
margin-bottom: 0.6rem;
}
.project__sharing-box-bottom {
display: none;
}
@media screen and (max-width: 991px) {
.article__sharing-box .card-body {
padding: 1.8rem;
margin-bottom: 0;
}
.article__sharing-box .image {
display: none;
}
.sharing-box__content {
display: flex;
align-items: center;
margin-bottom: 1rem;
}
.article__sharing-box .icon {
margin-bottom: 0;
margin-right: 1.2rem;
}
.project__sharing-box-bottom {
display: block;
margin-top: 3rem;
}
.project__sharing-box-top {
display: none;
}
}
/* REGION */
.region__header {
padding: 4rem 0 2rem 0;
}
.other-regions a {
box-shadow: 0 .25rem 1.875rem rgba(42, 53, 79, .28);
margin-bottom: 1rem;
color: black;
padding: 0.8rem 1rem;
display: block;
font-weight: bold;
}
/* ARTICLE CONTENT */
article img {
max-width: 100%;
height: auto;
margin-top: 1rem;
margin-bottom: 3rem;
}
/* REGION MAP */
.region-map {
overflow: hidden;
}
.region-map svg {
position: relative;
top: -0.734375px;
}
.region-map path {
stroke-linejoin: round;
cursor: pointer;
fill: #333333;
stroke: #666666;
}
.region-map a:hover path {
fill: #000000;
}
.region-list {
padding: 0;
}
.region-list li {
list-style-type: none;
}
.region-list a {
box-shadow: 0 .25rem 1.875rem rgba(42, 53, 79, .28);
margin-bottom: 1rem;
color: black;
padding: 0.6rem 1rem;
display: block;
font-weight: bold;
}
/* FORM TWEAKS */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type=number] {
-moz-appearance: textfield;
}
/* VARIOUS */
img.full-width {
width: 100%;
height: auto;
}
.btn-danger {
background-color: #d02d40;
}
.btn-wide {
width: 250px;
}
.responsive-object {
position: relative;
}
.responsive-object.ratio-16-9 {
padding-bottom: calc(100% / 16 * 9);
}
.responsive-object iframe,
.responsive-object object,
.responsive-object embed {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
/* OVERRIDE RICHTEXT ITALICS STYLE <i> */
.richtext i:not([class^="icon-"])) {
font-family: "Roboto Condensed", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !important;
font-style: italic;
font-weight: inherit;
}
/* OVERRIDE RICHTEXT IMAGES */
.richtext-image.left {
float: left;
margin-right: 1.5rem;
}
.richtext-image.right {
float: right;
margin-left: 1.5rem;
}
.text-grey-200 {
color: #adadad;
}
/* BEGIN TailwindCSS-based image formatting */
.mx-auto {
margin-left: auto;
margin-right: auto
}
.my-6 {
margin-top: 1.5rem;
margin-bottom: 1.5rem
}
.w-full {
width: 100%
}
.float-left{
float: left
}
.max-w-\[400px\]{
max-width: 400px
}
.sm\:max-w-full{
max-width: 100%
}
.float-right{
float: right
}
.ml-4 {
margin-left: 1rem
}
.mb-6{
margin-bottom: 1.5rem
}
.object-contain {
object-fit: contain;
-o-object-fit: contain
}
@media screen and (max-width: 991px) {
.lg\:h-max {
height: max-content;
}
.lg\:w-auto {
width: auto;
}
}
/* END TailwindCSS-based image formatting */
/* The container <div> - needed to position the dropdown content */
.dropdown {
position: relative;
cursor: pointer;
}
/* Dropdown Content (Hidden by Default) */
.dropdown-content {
display: none;
position: absolute;
z-index: 1;
}
@media screen and (max-width: 1200px) {
.dropdown-content {
display: block;
position: unset;
}
}
@media screen and (max-width: 1200px) {
.dropbtn {
display: none;
}
}
/* Links inside the dropdown */
.dropdown-content a {
display: block;
color: white;
}
@media screen and (min-width: 1200px) {
/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content,
.dropdown:focus .dropdown-content {
display: flex;
flex-direction: column;
gap: 0.75rem;
background: black;
padding: 0.8rem;
margin-left: -0.8rem;
width: 100%;
}
.dropdown-content li {
line-height: 1.4rem
}
.dropdown:hover,
.dropdown:focus {
background: black
}
}
.drop-arrow {
margin-left: 2px;
color: #8a8a8a;
position: relative;
top: -3px;
}
@media screen and (max-width: 1200px) {
.drop-arrow {
display: none;
}
}
(function ($) {
// Initialization
"use strict";
var nav = $('nav');
var navHeight = nav.outerHeight();
// Fancybox
$('[data-fancybox="gallery"]').fancybox({
buttons: [
// "zoom",
//"share",
//"slideShow",
//"fullScreen",
//"download",
// "thumbs",
"close"
],
});
// Scroll function
$('a.js-scroll-anchor[href*="#"]:not([href="#"])').on("click", function () {
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$('html, body').animate({
scrollTop: (target.offset().top - navHeight + 5)
}, 1000);
return false;
}
}
});
// Closes responsive menu when a scroll trigger link is clicked
$('.js-scroll-anchor').on("click", function () {
$('.navbar-collapse').collapse('hide');
});
// Activate scrollspy to add active class to navbar items on scroll
$('body').scrollspy({
target: '#mainNavigation',
offset: navHeight + 200
});
/*--/ End Scrolling nav /--*/
$(window).trigger('scroll');
/* DONATE FORM */
// On amount radio change
$("input[name='amount']").change(function() {
const $customAmount = $('#customamount')
$customAmount.attr('required', false);
$customAmount.val("");
});
$("input[name='custom_amount']").focus(function() {
$('#customamount').attr('required', true);
$('input[name=amount]:checked', '#js-donate-form').prop('checked', false);
})
// Function for handling switching between monthly and one-time prices
$("input[name='periodicity']").change(function () {
// periodicity 730 === monthly
if ($(this).attr('value') === '730') {
const $monthlyAmounts = $('#monthlyAmounts')
const selectRadio = $monthlyAmounts.data('default-selected')
$('input[name=amount]:checked', '#js-donate-form').prop('checked', false);
$(`#monthlyAmounts input[name=amount]:eq("${selectRadio - 1}")`).prop('checked', true);
$monthlyAmounts.show();
$('#oneTimeAmounts').hide();
} else {
const $oneTimeAmounts = $('#oneTimeAmounts')
const selectRadio = $oneTimeAmounts.data('default-selected')
$('input[name=amount]:checked', '#js-donate-form').prop('checked', false);
$(`#oneTimeAmounts input[name=amount]:eq("${selectRadio - 1}")`).prop('checked', true);
$oneTimeAmounts.show();
$('#monthlyAmounts').hide();
}
});
// Trigger correct state onload
$("input[name='amount']:checked").change();
// Update sharing link on form change for target donations
function updateLink(projectId) {
var url = new URL(location.href);
url.searchParams.set("p", projectId);
console.log(url.href);
$("#target_sharing_link").attr("href", url.href);
}
$("input:radio.target-radio").change(function () {
if ($(this).is(":checked")) {
if ($(this).val() == -1) {
updateLink($("#other_target_select").val());
} else {
updateLink($(this).val());
}
}
});
$("#other_target_select").change(function () {
if ($(this).val() !== "") {
$("#other_target").prop("checked", true);
updateLink($(this).val());
}
});
})(jQuery);
File added
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="896" descent="-128" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="0" d="" />
<glyph unicode="&#xf004;" glyph-name="heart" d="M924.6 770.8c125.6-107.201 132.201-299.602 19.6-415.8l-387-399.6c-25-25.801-65.6-25.801-90.6 0l-387 399.6c-112.4 116.199-105.799 308.6 19.801 415.8 109.6 93.398 272.798 76.6 373.2-27.201l39.4-40.6 39.4 40.6c100.6 103.801 263.6 120.6 373.2 27.201z" />
<glyph unicode="&#xf00c;" glyph-name="check" horiz-adv-x="896" d="M827.010 712.098c9.373 9.373 24.568 9.373 33.939 0l22.629-22.627c9.371-9.375 9.371-24.57 0-33.943l-599.626-599.624c-9.373-9.373-24.568-9.373-33.941 0l-237.588 237.588c-9.371 9.373-9.371 24.57 0 33.941l22.627 22.627c9.373 9.371 24.568 9.371 33.941 0l197.99-197.99z" />
<glyph unicode="&#xf053;" glyph-name="chevron-left" horiz-adv-x="512" d="M476.95-55.070c-9.371-9.373-24.566-9.373-33.939-0.002l-422.102 422.1c-9.373 9.375-9.373 24.57 0 33.943l422.102 422.1c9.373 9.371 24.568 9.371 33.939 0l14.143-14.141c9.373-9.373 9.373-24.57 0-33.941l-390.986-390.988 390.986-390.988c9.373-9.373 9.373-24.57 0-33.941z" />
<glyph unicode="&#xf054;" glyph-name="chevron-right" horiz-adv-x="512" d="M35.051 823.070c9.371 9.373 24.566 9.373 33.939 0l422.102-422.098c9.373-9.375 9.373-24.57 0-33.943l-422.102-422.1c-9.373-9.371-24.568-9.371-33.939 0l-14.143 14.141c-9.373 9.373-9.373 24.57 0 33.941l390.986 390.988-390.986 390.988c-9.373 9.373-9.373 24.57 0 33.941z" />
<glyph unicode="&#xf08c;" glyph-name="linkedin" d="M832 832c35.199 0 64-29 64-64.6v-766.8c0-35.6-28.801-64.6-64-64.6h-768.2c-35.201 0-63.801 29-63.801 64.6v766.8c0 35.6 28.6 64.6 63.801 64.6h768.2zM270.8 64h0.199v427.6h-133v-427.6h132.801zM204.4 550c42.6 0 77 34.4 77 77 0 42.4-34.6 77-77 77-42.6 0-77-34.6-77-77s34.4-77 77-77zM768.6 64v234.4c0 115.199-25 203.798-159.4 203.798-64.6 0-108-35.398-125.799-69h-1.801v58.4h-127.4v-427.6h132.801v211.6c0 55.801 10.6 109.801 79.801 109.801 68 0 69-63.801 69-113.4v-208h132.799z" />
<glyph unicode="&#xf08e;" glyph-name="external-link" d="M880 384c8.832 0 16-7.168 16-16v-400c0-52.992-43.008-96-96-96h-704c-52.992 0-96 43.008-96 96v704c0 52.992 43.008 96 96 96h400c8.832 0 16-7.168 16-16v-32c0-8.832-7.168-16-16-16h-400c-17.664 0-32-14.336-32-32v-704c0-17.664 14.336-32 32-32h704c17.664 0 32 14.336 32 32v400c0 8.832 7.168 16 16 16h32zM1000 896c13.248 0 24-10.752 24-24l-0.68-272.080c0-13.248-10.752-24-24-24h-20c-13.248 0-24 10.752-24 24l0.68 180-1.42 1.4-646.24-646.36c-3.883-3.898-11.498-7.061-17-7.061-5.5 0-13.117 3.162-17 7.061l-11.32 11.318c-3.896 3.883-7.059 11.5-7.059 17 0 5.502 3.162 13.117 7.059 17l646.38 646.3-1.4 1.42-180-0.68c-13.248 0-24 10.752-24 24v20c0 13.248 10.752 24 24 24z" />
<glyph unicode="&#xf099;" glyph-name="twitter" d="M918.74 592.568c0.65-9.096 0.65-18.195 0.65-27.291 0-277.44-211.166-597.116-597.118-597.116-118.904 0-229.36 34.438-322.274 94.211 16.895-1.947 33.137-2.598 50.68-2.598 98.109 0 188.426 33.137 260.548 89.664-92.264 1.951-169.584 62.377-196.225 145.545 12.996-1.949 25.99-3.248 39.637-3.248 18.842 0 37.686 2.6 55.227 7.146-96.162 19.494-168.285 103.959-168.285 205.968v2.598c27.938-15.594 60.428-25.34 94.861-26.637-56.527 37.686-93.561 102.010-93.561 174.781 0 38.984 10.393 74.721 28.588 105.908 103.309-127.35 258.6-210.516 432.728-219.614-3.248 15.594-5.197 31.836-5.197 48.080 0 115.654 93.564 209.868 209.868 209.868 60.428 0 115.004-25.34 153.342-66.273 47.43 9.096 92.91 26.639 133.197 50.68-15.596-48.732-48.732-89.666-92.264-115.654 42.234 4.547 83.168 16.244 120.852 32.486-28.584-41.582-64.322-78.617-105.256-108.506z" />
<glyph unicode="&#xf133;" glyph-name="calendar" horiz-adv-x="896" d="M800 768c53.020 0 96-42.98 96-96v-704c0-53.020-42.98-96-96-96h-704c-53.020 0-96 42.98-96 96v704c0 53.020 42.98 96 96 96h96v104c0 13.254 10.746 24 24 24h16c13.254 0 24-10.746 24-24v-104h384v104c0 13.254 10.746 24 24 24h16c13.254 0 24-10.746 24-24v-104h96zM96 704c-17.645 0-32-14.355-32-32v-96h768v96c0 17.645-14.355 32-32 32h-704zM800-64c17.645 0 32 14.355 32 32v544h-768v-544c0-17.645 14.355-32 32-32h704z" />
<glyph unicode="&#xf167;" glyph-name="youtube" horiz-adv-x="1152" d="M1099.31 647.834c22.824-85.734 22.824-264.61 22.824-264.61s0-178.877-22.824-264.612c-12.563-47.299-49.574-83-96.568-95.641-85.182-22.973-426.742-22.973-426.742-22.973s-341.56 0-426.742 22.973c-46.994 12.641-84.006 48.342-96.568 95.641-22.824 85.734-22.824 264.612-22.824 264.612s0 178.875 22.824 264.61c12.563 47.301 49.574 84.551 96.568 97.193 85.182 22.973 426.742 22.973 426.742 22.973s341.562 0 426.742-22.973c46.994-12.641 84.006-49.893 96.568-97.193zM464.29 220.818l285.478 162.402-285.478 162.41v-324.812z" />
<glyph unicode="&#xf16d;" glyph-name="instagram" d="M448.2 614c127.201 0 229.8-102.6 229.8-229.8s-102.6-229.798-229.8-229.798c-127.199 0-229.798 102.6-229.798 229.798 0 127.201 102.6 229.8 229.798 229.8zM448.2 234.8c82.201 0 149.4 67 149.4 149.398 0 82.4-67 149.4-149.4 149.4-82.398 0-149.398-67-149.398-149.4 0-82.398 67.199-149.398 149.398-149.398zM741 623.4c0-29.801-24-53.6-53.6-53.6-29.801 0-53.6 24-53.6 53.6s24 53.6 53.6 53.6 53.6-24 53.6-53.6zM893.2 569c4.201-74 4.201-295.6 0-369.6-3.6-71.801-20-135.4-72.398-187.801-52.4-52.6-116-69-187.801-72.4-74-4.199-295.8-4.199-369.8 0-71.799 3.602-135.199 20-187.799 72.4s-69 116-72.4 187.801c-4.199 74-4.199 295.798 0 369.798 3.6 71.801 19.801 135.4 72.4 187.801s116.199 68.801 187.799 72.199c74 4.201 295.8 4.201 369.8 0 71.801-3.6 135.4-20 187.801-72.398 52.6-52.4 69-116 72.398-187.801zM797.6 120c23.4 58.801 18 199 18 264.2s5.4 205.202-18 264.202c-15.799 39.4-46 69.6-85.199 85.199-58.801 23.201-199 18-264.202 18-65.199 0-205.2 5.4-264.2-18-39.4-15.799-69.6-46-85.199-85.199-23.201-58.801-18-199-18-264.202 0-65.199-5.4-205.2 18-264.2 15.799-39.4 46-69.6 85.199-85.199 58.801-23.201 199-18 264.2-18s205.202-5.4 264.202 18c39.4 15.799 69.6 46 85.199 85.199z" />
<glyph unicode="&#xf16e;" glyph-name="flickr" d="M800 832c53 0 96-43 96-96v-704c0-53-43-96-96-96h-704c-53 0-96 43-96 96v704c0 53 43 96 96 96h704zM289 258c70.199 0 127 56.801 127 127s-56.801 127-127 127-127-56.801-127-127 56.801-127 127-127zM607 258c70.199 0 127 56.801 127 127s-56.801 127-127 127-127-56.801-127-127 56.801-127 127-127z" />
<glyph unicode="&#xf39e;" glyph-name="facebook-f" horiz-adv-x="640" d="M558.28 320h-149.379v-448h-200.34v448h-162.781v185.32h162.781v141.24c0 160.68 95.719 249.44 242.16 249.44 70.139 0 143.5-12.52 143.5-12.52v-157.781h-80.84c-79.641 0-104.48-49.42-104.48-100.119v-120.26h177.82z" />
</font></defs></svg>
File added
File added
donate/static/donate/img/donate.png

21.6 KiB

donate/static/donate/img/ivan.png

229 KiB

donate/static/donate/img/logo_napis.png

8.34 KiB

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Vrstva_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 145.7 46.7" style="enable-background:new 0 0 145.7 46.7;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<g>
<path class="st0" d="M22,2.8C16.1,2.8,10.6,5,6.4,9.2C2.3,13.3,0,18.9,0,24.7c0,5.9,2.3,11.4,6.4,15.5c4.2,4.1,9.7,6.4,15.5,6.4
c5.9,0,11.4-2.3,15.5-6.4c4.2-4.1,6.4-9.7,6.4-15.5c0-5.9-2.3-11.4-6.4-15.5C33.4,5,27.8,2.8,22,2.8 M22,44.6
c-11,0-19.9-8.9-19.9-19.9C2.1,13.8,11,4.8,22,4.8c11,0,19.9,8.9,19.9,19.9C41.9,35.7,32.9,44.6,22,44.6"/>
</g>
<path class="st0" d="M15.4,11.7V8.6h-1.9v3.6c-1.3,0.4-2.1,0.8-1.9,1.1c0.4-0.1,1.1-0.2,1.9-0.1v18.5c-2,3.8,0.9,9.7,0.9,9.7
S12.2,35,16.9,32c4.3-2.7,19.3-1.5,19.2-9.9C36.1,10.1,22.3,10.2,15.4,11.7 M21.5,23.3c-0.7,3.2-4.1,4.8-6.2,6.2V13.4
C18.8,14.2,22.9,16.9,21.5,23.3"/>
<g>
<path class="st0" d="M56.4,16.7v5.1h-4.4V5.5c1.5-0.2,3.2-0.3,4.9-0.3c5.1,0,7.7,1.8,7.7,5.5c0,2-0.6,3.5-1.7,4.5
c-1.1,1-2.8,1.5-5,1.5C57.3,16.8,56.8,16.7,56.4,16.7z M56.4,13.4c0.3,0,0.6,0.1,1,0.1c1,0,1.7-0.2,2.3-0.7
c0.5-0.5,0.8-1.1,0.8-1.9c0-1.6-1-2.4-3-2.4c-0.3,0-0.7,0-1,0.1V13.4z"/>
<path class="st0" d="M67.8,7.4c1.5-1.5,3.6-2.3,6.2-2.3s4.6,0.8,6.2,2.3c1.5,1.5,2.3,3.6,2.3,6.2s-0.8,4.7-2.3,6.2
c-1.5,1.5-3.6,2.3-6.2,2.3s-4.6-0.8-6.2-2.3c-1.5-1.5-2.3-3.6-2.3-6.2S66.3,8.9,67.8,7.4z M70.2,13.6c0,3.1,1.3,4.7,3.8,4.7
c2.5,0,3.8-1.6,3.8-4.7S76.5,8.9,74,8.9C71.4,8.9,70.2,10.5,70.2,13.6z"/>
<path class="st0" d="M98.2,13.4c0,2.7-0.8,4.9-2.3,6.4s-3.7,2.3-6.5,2.3c-1.8,0-3.4-0.1-5-0.3V5.5c1.5-0.2,3.2-0.3,5-0.3
c2.8,0,4.9,0.7,6.5,2.2C97.4,8.8,98.2,10.8,98.2,13.4z M88.8,18.5c0.3,0.1,0.7,0.1,1,0.1c2.7,0,4-1.7,4-5.2c0-3.1-1.4-4.7-4-4.7
c-0.3,0-0.7,0-1,0.1V18.5z"/>
<path class="st0" d="M104.6,16.7v5.1h-4.4V5.5c1.5-0.2,3.2-0.3,5-0.3c5.1,0,7.6,1.8,7.6,5.5c0,2-0.6,3.5-1.7,4.5s-2.8,1.5-5,1.5
C105.5,16.8,105,16.7,104.6,16.7z M104.6,13.4c0.3,0,0.6,0.1,1,0.1c1,0,1.7-0.2,2.3-0.7c0.5-0.5,0.8-1.1,0.8-1.9c0-1.6-1-2.4-3-2.4
c-0.3,0-0.7,0-1,0.1V13.4z"/>
<path class="st0" d="M116,7.4c1.5-1.5,3.6-2.3,6.2-2.3s4.6,0.8,6.2,2.3c1.5,1.5,2.3,3.6,2.3,6.2s-0.8,4.7-2.3,6.2
c-1.5,1.5-3.6,2.3-6.2,2.3s-4.6-0.8-6.2-2.3c-1.5-1.5-2.3-3.6-2.3-6.2S114.5,8.9,116,7.4z M118.3,13.6c0,3.1,1.3,4.7,3.8,4.7
s3.8-1.6,3.8-4.7s-1.3-4.7-3.8-4.7S118.3,10.5,118.3,13.6z"/>
<path class="st0" d="M137,16.1v5.7h-4.4V5.5c1.9-0.2,3.9-0.3,5.8-0.3c4.5,0,6.8,1.7,6.8,5.1c0,0.9-0.3,1.8-0.9,2.6
s-1.3,1.4-2.3,1.7v0c0.5,0.3,0.8,0.6,1.1,1c0.3,0.4,0.6,1,0.9,1.7l1.6,4.5H141l-1.4-4.3c-0.2-0.5-0.4-0.9-0.6-1.1s-0.6-0.3-1-0.3
H137z M138.7,2.6L140,0h4l-2.7,4.1H136L133.3,0h4L138.7,2.6L138.7,2.6z M137,12.8h1.2c0.8,0,1.4-0.2,1.8-0.6
c0.4-0.4,0.7-0.9,0.7-1.6c0-1.4-0.8-2.1-2.5-2.1c-0.5,0-0.9,0-1.2,0.1V12.8z"/>
<path class="st0" d="M56.4,39v5.1h-4.4V27.8c1.5-0.2,3.2-0.3,4.9-0.3c5.1,0,7.7,1.8,7.7,5.5c0,2-0.6,3.5-1.7,4.5
c-1.1,1-2.8,1.5-5,1.5C57.3,39.1,56.8,39,56.4,39z M56.4,35.7c0.3,0,0.6,0.1,1,0.1c1,0,1.7-0.2,2.3-0.7c0.5-0.5,0.8-1.1,0.8-1.9
c0-1.6-1-2.4-3-2.4c-0.3,0-0.7,0-1,0.1V35.7z"/>
<path class="st0" d="M66.8,44.1V27.7h4.9v16.4H66.8z"/>
<path class="st0" d="M79.4,38.4v5.7H75V27.8c1.9-0.2,3.9-0.3,5.9-0.3c4.5,0,6.7,1.7,6.7,5.1c0,0.9-0.3,1.8-0.9,2.6
c-0.6,0.8-1.3,1.4-2.3,1.7v0c0.4,0.3,0.8,0.6,1.1,1c0.3,0.4,0.6,1,0.9,1.7l1.6,4.5h-4.6L82,39.8c-0.2-0.5-0.4-0.9-0.6-1.1
c-0.3-0.2-0.6-0.3-1-0.3H79.4z M79.4,35.1h1.2c0.8,0,1.4-0.2,1.8-0.6c0.4-0.4,0.7-0.9,0.7-1.6c0-1.4-0.8-2.1-2.5-2.1
c-0.5,0-0.9,0-1.2,0.1V35.1z"/>
<path class="st0" d="M94.5,41l-0.7,3.2h-4.7l5.4-16.4h4.7l5.4,16.4h-4.8L99.1,41H94.5z M97.7,26.4h-3.6l2.3-4.1h5L97.7,26.4z
M95.3,37.6h3l-1.5-6.1h0L95.3,37.6z"/>
<path class="st0" d="M118.5,27.7v3.7h-4.5v12.7h-4.6V31.4H105v-3.7H118.5z"/>
<path class="st0" d="M127.8,34.5L127.8,34.5l2.7-6.8h5L130.1,38v6.1h-4.6V38L120,27.7h5.1L127.8,34.5z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Vrstva_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 165.3 46.7" style="enable-background:new 0 0 165.3 46.7;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<g>
<path class="st0" d="M22,2.8c-5.9,0-11.4,2.3-15.5,6.4C2.3,13.4,0,18.9,0,24.7c0,5.9,2.3,11.4,6.4,15.5c4.2,4.1,9.7,6.4,15.5,6.4
c5.9,0,11.4-2.3,15.5-6.4c4.2-4.1,6.4-9.7,6.4-15.5c0-5.9-2.3-11.4-6.4-15.5C33.4,5.1,27.8,2.8,22,2.8 M22,44.6
c-11,0-19.9-8.9-19.9-19.9C2.1,13.8,11,4.9,22,4.9c11,0,19.9,8.9,19.9,19.9C41.9,35.7,32.9,44.6,22,44.6"/>
</g>
<path class="st0" d="M15.4,11.7V8.6h-1.9v3.6c-1.3,0.4-2.1,0.8-1.9,1.1c0.4-0.1,1.1-0.2,1.9-0.1v18.5c-2,3.8,0.9,9.7,0.9,9.7
S12.2,35,16.9,32c4.3-2.7,19.3-1.5,19.2-9.9C36.1,10.2,22.3,10.2,15.4,11.7 M21.5,23.3c-0.7,3.2-4.1,4.8-6.2,6.2V13.4
C18.8,14.2,22.9,16.9,21.5,23.3 M57.2,5.2c-1.8,0-3.4,0.1-5,0.3V22h4.4v-5.2c0.4,0,0.9,0.1,1.5,0.1c2.2,0,3.9-0.5,5.1-1.6
c1.2-1,1.7-2.6,1.7-4.6C64.9,7.1,62.4,5.2,57.2,5.2 M59.9,12.9c-0.5,0.5-1.3,0.7-2.3,0.7c-0.4,0-0.7,0-1-0.1V8.7
c0.3-0.1,0.7-0.1,1-0.1c2,0,3.1,0.8,3.1,2.4C60.7,11.8,60.5,12.5,59.9,12.9"/>
<path class="st0" d="M67,5.4h5V22h-5V5.4z"/>
<g>
<path class="st0" d="M83.7,22h4.6l-1.6-4.5c-0.3-0.7-0.6-1.3-0.9-1.7c-0.3-0.4-0.7-0.7-1.1-1v0c0.9-0.3,1.7-0.9,2.3-1.7
c0.6-0.8,0.9-1.7,0.9-2.7c0-3.4-2.3-5.1-6.8-5.1c-2,0-3.9,0.1-5.9,0.3V22h4.4v-5.8h1c0.4,0,0.8,0.1,1,0.3c0.3,0.2,0.5,0.6,0.6,1.1
L83.7,22z M80.9,12.9h-1.2V8.7c0.3-0.1,0.8-0.1,1.2-0.1c1.7,0,2.5,0.7,2.5,2.2c0,0.7-0.2,1.2-0.7,1.6
C82.3,12.7,81.7,12.9,80.9,12.9"/>
</g>
<path class="st0" d="M94.8,18.8h4.6l0.8,3.2h4.8L99.5,5.4h-4.8L89.3,22H94C94,22,94.8,18.8,94.8,18.8z M97.1,9.3L97.1,9.3l1.5,6.1
h-3C95.6,15.4,97.1,9.3,97.1,9.3z M101.7,0h-5l-2.3,4.1h3.6 M109.1,22h4.6V9.2h4.5V5.4h-13.6v3.7h4.5"/>
<g>
<path class="st0" d="M125.6,18.7c-0.8,0-1.6-0.2-2.5-0.5c-0.9-0.3-1.7-0.7-2.5-1.2l-1,3.5c0.7,0.5,1.6,0.9,2.7,1.2
c1.1,0.3,2.1,0.5,3.1,0.5c2.3,0,4-0.4,5.2-1.3c1.1-0.9,1.7-2.1,1.7-3.8c0-1.4-0.5-2.5-1.5-3.4c-1-0.9-2.6-1.6-5-2.3
c-1-0.3-1.5-0.7-1.5-1.4c0-0.4,0.2-0.7,0.5-1c0.4-0.2,0.9-0.4,1.6-0.4c1.6,0,3.1,0.4,4.6,1.1l0.8-3.5c-1.5-0.8-3.4-1.1-5.7-1.1
c-2.1,0-3.7,0.4-4.9,1.3c-1.2,0.9-1.7,2.1-1.7,3.6c0,1.4,0.5,2.5,1.4,3.4c0.9,0.9,2.5,1.7,4.7,2.3c1.2,0.3,1.8,0.8,1.8,1.5
C127.6,18.2,126.9,18.7,125.6,18.7"/>
</g>
<path class="st0" d="M148.7,5.4h-5.2l-4.3,7h0v-7h-4.5V22h4.5v-7.7h0l4.5,7.7h5.2l-5.4-8.6 M162,0h-5l-2.3,4.1h3.6 M159.9,5.4h-4.8
L149.7,22h4.7l0.8-3.2h4.6l0.8,3.2h4.8C165.3,22,159.9,5.4,159.9,5.4z M156,15.4l1.5-6.1h0l1.5,6.1H156L156,15.4z"/>
<g>
<path class="st0" d="M57.9,33.8c-1-0.3-1.5-0.7-1.5-1.4c0-0.4,0.2-0.7,0.5-1c0.4-0.2,0.9-0.4,1.6-0.4c1.6,0,3.1,0.4,4.7,1.1
l0.8-3.5c-1.5-0.8-3.4-1.1-5.7-1.1c-2.1,0-3.7,0.4-4.9,1.3c-1.2,0.9-1.7,2.1-1.7,3.6c0,1.4,0.5,2.5,1.4,3.4
c0.9,0.9,2.5,1.7,4.7,2.3c1.2,0.3,1.8,0.8,1.8,1.5c0,1-0.7,1.5-2,1.5c-0.8,0-1.6-0.1-2.5-0.5c-0.9-0.3-1.7-0.7-2.5-1.2l-1,3.5
c0.7,0.5,1.6,0.9,2.7,1.2c1.1,0.3,2.1,0.5,3.1,0.5c2.3,0,4-0.4,5.2-1.3c1.2-0.9,1.7-2.1,1.7-3.8c0-1.4-0.5-2.5-1.5-3.4
C61.9,35.2,60.3,34.5,57.9,33.8"/>
</g>
<path class="st0" d="M65.8,31.6h4.5v12.8h4.6V31.6h4.5v-3.7H65.8"/>
<g>
<g>
<path class="st0" d="M92.5,38.1c-0.3-0.4-0.7-0.7-1.1-1v0c0.9-0.3,1.7-0.9,2.3-1.7c0.6-0.8,0.9-1.7,0.9-2.7c0-3.4-2.3-5.1-6.8-5.1
c-2,0-3.9,0.1-5.9,0.3v16.4h4.4v-5.8h1c0.4,0,0.8,0.1,1,0.3c0.3,0.2,0.5,0.6,0.6,1.1l1.4,4.3H95l-1.6-4.5
C93.1,39.1,92.8,38.5,92.5,38.1 M89.3,34.7c-0.4,0.4-1.1,0.6-1.8,0.6h-1.2v-4.2C86.6,31,87,31,87.5,31c1.7,0,2.5,0.7,2.5,2.2
C90,33.8,89.7,34.3,89.3,34.7"/>
</g>
</g>
<path class="st0" d="M101.6,27.8l-5.4,16.5h4.7l0.7-3.2h4.6l0.8,3.2h4.8l-5.4-16.5H101.6z M102.4,37.8l1.5-6.1h0l1.5,6.1
C105.4,37.8,102.4,37.8,102.4,37.8z M123,36.9L123,36.9l-5-9.1h-4.4v16.6h4.4v-9.1h0l4.9,9.1h4.4V27.8H123 M134.8,27.8l-5.4,16.5
h4.7l0.8-3.2h4.6l0.8,3.2h4.8l-5.4-16.5H134.8L134.8,27.8z M135.6,37.8l1.5-6.1h0l1.5,6.1H135.6L135.6,37.8z"/>
</svg>
donate/static/donate/img/vlajka.jpg

10.8 KiB

{% load static wagtailcore_tags wagtailimages_tags wagtailmetadata_tags %}
<!doctype html>
<html lang="cs">
<head>
{% if request.in_preview_panel %}
<base target="_blank">
{% endif %}
<link href="https://gfonts.pirati.cz/css2?family=Bebas+Neue&family=Roboto+Condensed:wght@300;400;700&family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
<!-- Meta -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
{% meta_tags %}
{% if settings.MAJAK_ENV == "test" or disable_robots %}
<meta name="robots" content="noindex, nofollow">
{% endif %}
<!-- Favicon -->
{% include "shared/favicon_snippet.html" %}
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="{% static "shared/vendor/bootstrap-4.4.1/css/bootstrap.min.css" %}">
<link rel="stylesheet" href="{% static "shared/vendor/fancybox/jquery.fancybox.min.css" %}">
<!-- Styles -->
<link href="{% static "donate/assets/css/style.css" %}" rel="stylesheet">
<link href="{% static "donate/assets/css/icons.css" %}" rel="stylesheet">
{% block extra_head %}{% endblock %}
{% if page.root_page.matomo_id %}
{% include "shared/matomo_snippet.html" with matomo_id=page.root_page.matomo_id %}
{% endif %}
</head>
<body id="top">
{% if settings.MAJAK_ENV == "test" %}
<div class="pre-navbar d-none d-lg-flex" style="background: #884444; color: #FFFFFF;">
<div class="container d-flex justify-content-center">
<span>TESTOVACÍ WEB! Darujte na <a href="https://dary.pirati.cz/" class="header_link header_link--desktop mr-4 py-2">dary.pirati.cz</a></span>
</div>
</div>
{% endif %}
<!-- HEADER -->
{% block header %}
<div class="pre-navbar d-none d-lg-flex" style="background:black;">
<div class="container d-flex justify-content-end">
{% for custom_link in page.root_page.custom_links %}
<a
href="{{ custom_link.value.url }}"
class="header_link header_link--desktop mr-4 py-2"
target="_blank"
rel="noreferrer"
>
<i class="icon-external-link mr-2" title="Ikona odkazu"></i>
{{ custom_link.value.text }}
</a>
{% endfor %}
</div>
</div>
<nav class="navbar navbar-expand-xl navbar-dark">
<div class="container">
<!-- Candidate name -->
<div class="brand-wrapper">
<a class="navbar-brand" href="/">
<img
src="{% static "styleguide2/images/logo-full-white.svg"%}"
alt="Logo"
>
</a>
</div>
<!-- Mobile menu toggler -->
<button class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#mainNavigation" aria-controls="mainNavigation" aria-expanded="false" aria-label="Otevřít menu">
<span></span>
<span></span>
<span></span>
</button>
<!-- Navigation -->
<div class="collapse navbar-collapse" id="mainNavigation">
<ul class="navbar-nav ml-auto">
{% for block in page.root_page.menu %}
{% include_block block %}
{% endfor %}
</ul>
{% for custom_link in page.root_page.custom_links %}
<a
href="{{ custom_link.value.url }}"
class="d-block d-lg-none mb-3 header_link header_link--mobile"
target="_blank"
rel="noreferrer"
>
<i class="icon-external-link mr-2" title="Ikona odkazu"></i>
{{ custom_link.value.text }}
</a>
{% endfor %}
</div><!-- /navigation -->
</div><!-- /container -->
</nav>
{% endblock %}
<!-- /HEADER -->
{% block content %}{% endblock %}
<!-- FOOTER -->
{% block footer %}
<footer id="kontakt">
<div class="footer__top">
<div class="container">
<div class="row">
<div class="col-12 col-md-6 col-lg-3 mb-4 mb-md-5 mb-lg-4 order-0 order-lg-0">
<div class="footer__logo">
<img src="{% static "donate/img/logo_napis_white.svg" %}" alt="Logo podpoř piráty">
</div>
<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="/obchodni-podminky/">Obchodní podmínky</a></li>
</ul>
</div><!-- /column -->
<div class="col-12 col-md-6 col-lg-3 mb-4 order-2 order-lg-1">
<h4 class="lead mb-3">Otevřenost</h4>
<ul class="footer__menu">
{% if page.root_page.transparency_footer_items %}
{% for block in page.root_page.transparency_footer_items %}
<li>
<a
href="{{ block.value.url }}"
target="_blank"
>{{ block.value.text }}</a>
</li>
{% endfor %}
{% endif %}
</ul>
</div><!-- /column -->
<div class="col-12 col-md-6 col-lg-3 order-3 order-lg-2">
<h4 class="lead mb-3">Kontakt</h4>
<h6 class="mb-0">Napiš nám</h6>
<p class="mb-3"><a href="mailto:fundraising@pirati.cz">fundraising@pirati.cz</a></p>
<h6 class="mb-0">Zavolej nám</h6>
<p class="mb-0"><a href="tel: +420770189488">+420 770 189 488</a></p>
</div><!-- /column -->
<div class="col-12 col-md-6 col-lg-3 mb-4 mb-md-5 mb-lg-4 order-1 order-lg-3">
<h4 class="lead mb-3 d-none d-lg-block">Sociální sítě</h4>
<div class="socials">
{% if page.root_page.facebook %}
<a href="{{ page.root_page.facebook }}" target="_blank" rel="noreferrer"><i class="icon-facebook-f" title="Facebooková stránka"></i></a>
{% endif %}
{% if page.root_page.twitter %}
<a href="{{ page.root_page.twitter }}" target="_blank" rel="noreferrer"><i class="icon-twitter" title="Profil na Twitteru"></i></a>
{% endif %}
{% if page.root_page.instagram %}
<a href="{{ page.root_page.instagram }}" target="_blank" rel="noreferrer"><i class="icon-instagram" title="Profil na Instagramu"></i></a>
{% endif %}
{% if page.root_page.flickr %}
<a href="{{ page.root_page.flickr }}" target="_blank" rel="noreferrer"><i class="icon-flickr" title="Profil na Flickr"></i></a>
{% endif %}
</div>
<div class="row">
<a href="https://nalodeni.pirati.cz" class="btn btn-success ml-2 my-3">Nalodit se <i class="icon-chevron-right ml-2"></i></a>
</div>
</div><!-- /column -->
</div> <!-- /row -->
</div><!-- /container -->
</div><!-- /footer_top -->
<div class="footer__bottom">
<div class="container">
<div class="row">
<div class="col-12 col-md-6 mb-3 mb-md-0">
<p class="mb-0">
<span style="display:inline-block;transform:scale(-1, 1)">&copy;</span>
{% now "Y" %} Piráti. <a href="https://wiki.pirati.cz/rules/prah#licence" target="_blank" class="underline">CC-BY-SA 4.0</a>.
<br>
Všechna práva vyhlazena. Sdílejte a nechte ostatní sdílet za stejných podmínek.
<br>
Zadavatel | zpracovatel: Česká pirátská strana
</p>
</div><!-- /column -->
<div class="col-12 col-md-6 text-md-right">
<p class="mb-0">Tento web využívá soubory cookies - <a href="/soubory-cookies/">více informací</a></p>
</div><!-- /column -->
</div><!-- /row -->
</div><!-- /container -->
</div><!-- /footer_bottom -->
</footer>
<!-- /FOOTER -->
{% endblock %}
<!-- JavaScript libraries -->
<script src="{% static "shared/vendor/jquery/jquery-3.4.1.min.js" %}"></script>
<script src="{% static "shared/vendor/bootstrap-4.4.1/js/bootstrap.min.js" %}"></script>
<script src="{% static "shared/vendor/lazysizes/lazysizes.min.js" %}"></script>
<script src="{% static "shared/vendor/fancybox/jquery.fancybox.min.js" %}"></script>
<script src="{% static "donate/assets/js/scripts.js" %}"></script>
</body>
</html>
{% load wagtailimages_tags %}
<div class="project-donate-form project-donate-form__right mb-3">
<form method="post">
{% csrf_token %}
<input type="hidden" name="portal_project_id" value="{{ page.portal_project_id }}">
<input type="hidden" name="periodicity" value="99999">
<input type="hidden" name="amount" value="{{ self.amount }}">
<input type="hidden" name="crowdfunding" value="{{ self.reward_id }}">
<h3 class="lead mb-3">{{ self.title }}</h3>
<div class="row">
<figure class="col-12 col-md-7">
{% image self.image fill-500x800 as img %}
<img src="{{ img.url }}" alt="{{ img.alt }}" class="w-100">
</figure>
<div class="col-12 col-md-5">
{{ self.description }}<br>
{% if self.variant_list %}
<small>Zvolte si varaintu:</small>
{% for variant in self.variant_list %}
<div class="custom-control form-control-md custom-radio">
<input type="radio" id="product-{{ forloop.counter }}" name="product"
value="{{ self.title }}-{{ variant }}"
class="custom-control-input form-control-md" required>
<label class="custom-control-label col-form-label-lg"
for="product-{{ forloop.counter }}">{{ variant }}</label>
</div>
{% endfor %}
{% else %}
<input name="product"
value="{{ self.title }}"
hidden
class="custom-control-input form-control-md"
required
>
{% endif %}
</div>
</div>
<div class="row mt-2">
<div class="col-7 mb-2 mb-md-0">
<button type="submit" class="btn btn-danger btn-md">Darovat {{ self.amount }}&nbsp;</button>
</div>
{% if self.delivery_date %}
<p class="col-12 col-md-5">
Dodání do: <br>
<time datetime="2019-06-18">{{ self.delivery_date|date:"d. m. Y" }}</time>
</p>
{% endif %}
</div>
</form>
</div>
{% load static wagtailimages_tags wagtailcore_tags donate_tags %}
<div class="container">
<h2 class="lead page-subheading mb-4">{{ self.title }}</h2>
<div class="mb-4 clearfix">
{{ self.content|richtext }}
</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>
</div>
{% load static wagtailimages_tags wagtailcore_tags donate_tags %}
<div class="container" id="kraje">
<h2 class="lead page-subheading mb-4">{{ self.heading }}</h2>
<p class="mb-4">{{ self.description|richtext }}</p>
<div class="row mb-4">
<!-- TODO -->
{% include "donate/region_map_snippet.html" with index_url=page.regions_page_url %}
</div> <!-- /row -->
</div> <!-- /container -->
{% firstof self.page.url self.link as target %}
<a class="nav-link js-scroll-anchor" href="{{ target }}">{{ self.title }}</a>
</a>
<div
class="dropdown nav-link js-scroll-anchor"
tabindex="0"
>
<div class="dropbtn">
{{ self.title }}
<span class="drop-arrow">🞃</span>
</div>
<div class="dropdown-content">
{% for nested_item in self.menu_items %}
<li>
{% firstof nested_item.page.url nested_item.link as target %}
<a href="{{ target }}">
{{ nested_item.title }}
</a>
</li>
{% endfor %}
</div>
</div>