diff --git a/README.md b/README.md index 98be5d3389d87536bbfa355f58e2598e61f0ca63..0a902681672649d7f923760f50f49676e4d38dce 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,9 @@ Rozšíření která používáme: ├── senate = app na web senat.pirati.cz ├── senat_campaign = app na weby kandidátů na senátory ├── districts = app na web kraje.pirati.cz + ├── region = app na weby krajskych sdruzeni + ├── district = app na weby mistnich sdruzeni + ├── districts = app na web kraje.pirati.cz ├── program2021 = app na prezentaci programu 2021 ├── uniweb = app na univerzalni webove stranky ... diff --git a/district/__init__.py b/district/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/district/apps.py b/district/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..074052a4ff14afd66a3e5ea8accbd575d3bef242 --- /dev/null +++ b/district/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class DistrictConfig(AppConfig): + name = "district" diff --git a/district/migrations/0001_initial.py b/district/migrations/0001_initial.py new file mode 100644 index 0000000000000000000000000000000000000000..f849b73bdeb9d945ceb1145277d2c32ab86f7f2a --- /dev/null +++ b/district/migrations/0001_initial.py @@ -0,0 +1,84 @@ +# Generated by Django 3.1.1 on 2020-10-07 06:42 + +import django.db.models.deletion +import wagtail.core.blocks +import wagtail.core.fields +import wagtailmetadata.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ("wagtailcore", "0052_pagelogentry"), + ("wagtailimages", "0022_uploadedimage"), + ] + + operations = [ + migrations.CreateModel( + name="DistrictHomePage", + fields=[ + ( + "page_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="wagtailcore.page", + ), + ), + ( + "content", + wagtail.core.fields.StreamField( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + icon="title", label="nadpis" + ), + ) + ], + blank=True, + verbose_name="obsah stránky", + ), + ), + ( + "facebook", + models.URLField(blank=True, null=True, verbose_name="Facebook URL"), + ), + ( + "forum", + models.URLField(blank=True, null=True, verbose_name="Fórum URL"), + ), + ( + "matomo_id", + models.IntegerField( + blank=True, + null=True, + verbose_name="Matomo ID pro sledování návštěvnosti", + ), + ), + ( + "search_image", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailimages.image", + verbose_name="Search image", + ), + ), + ], + options={"verbose_name": "Web místního sdružení",}, + bases=( + wagtailmetadata.models.MetadataMixin, + "wagtailcore.page", + models.Model, + ), + ), + ] diff --git a/district/migrations/__init__.py b/district/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/district/models.py b/district/models.py new file mode 100644 index 0000000000000000000000000000000000000000..b904ffcfe33367e163ae2b829a50a92a7d92fa5c --- /dev/null +++ b/district/models.py @@ -0,0 +1,62 @@ +from django.db import models +from django.utils.translation import gettext_lazy +from wagtail.admin.edit_handlers import ( + FieldPanel, + HelpPanel, + MultiFieldPanel, + StreamFieldPanel, +) +from wagtail.core import blocks +from wagtail.core.fields import StreamField +from wagtail.core.models import Page +from wagtailmetadata.models import MetadataPageMixin + +from tuning import help + + +class DistrictHomePage(MetadataPageMixin, Page): + ### FIELDS + + content = StreamField( + [("title", blocks.CharBlock(label="nadpis", icon="title")),], + verbose_name="obsah stránky", + blank=True, + ) + + facebook = models.URLField("Facebook URL", blank=True, null=True) + forum = models.URLField("Fórum URL", blank=True, null=True) + + # settings + matomo_id = models.IntegerField( + "Matomo ID pro sledování návštěvnosti", blank=True, null=True + ) + + ### PANELS + + content_panels = Page.content_panels + [ + StreamFieldPanel("content"), + ] + + promote_panels = [ + MultiFieldPanel( + [FieldPanel("facebook"), FieldPanel("forum"),], + gettext_lazy("Common page configuration"), + ), + ] + + settings_panels = [ + FieldPanel("matomo_id"), + ] + + ### RELATIONS + + subpage_types = [] + + ### OTHERS + + class Meta: + verbose_name = "Web místního sdružení" + + @property + def root_page(self): + return self diff --git a/district/templates/district/base.html b/district/templates/district/base.html new file mode 100644 index 0000000000000000000000000000000000000000..d689df0508c75635bfe2992c49cd6adcc585cd7f --- /dev/null +++ b/district/templates/district/base.html @@ -0,0 +1,120 @@ +{% load static wagtailcore_tags wagtailimages_tags wagtailmetadata_tags %} +<!doctype html> +<html lang="cs"> +<head> + <!-- Meta --> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width" /> + {% meta_tags %} + {% if settings.MAJAK_ENV == "test" %} + <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 "uniweb/assets/css/styles.css" %}" rel="stylesheet" media="all" /> + <link href="{% static "uniweb/assets/css/pattern-scaffolding.css" %}" rel="stylesheet" media="all" /> + <link href="{% static "shared/vendor/fancybox/jquery.fancybox.min.css" %}" rel="stylesheet"> + + <style type="text/css"> + .inline-block { + display: inline-block; + } + </style> + + {% if page.matomo_id %} + {% include "shared/matomo_snippet.html" with matomo_id=page.matomo_id %} + {% endif %} +</head> + +<body> + + <nav class="navbar navbar--simple __js-root"> + <ui-app inline-template> + <ui-navbar inline-template> + <div> + <div class="container container--wide navbar__content max-w-screen-xl" :class="{'navbar__content--initialized': true}"> + <div class="navbar__brand my-4 flex items-center lg:pr-8 lg:my-0"> + <a href="#"> + <img src="{% static "uniweb/assets/images/logo-round-white.svg" %}" class="w-8" /> + </a> + </div> + <div v-if="show || isLgScreenSize" class="navbar__main navbar__section navbar__section--expandable container-padding--zero lg:container-padding--auto"> + <ul class="navbar-menu text-white"> + {% comment "Misto pro menu items " %} + <li class="navbar-menu__item"> + <a href="{% pageurl item.value.page %}" data-href="{% pageurl item.value.page %}" class="navbar-menu__link">{{ item.value.name }}</a> + </li> + {% endcomment %} + </ul> + </div> + </div> + </div> + </ui-navbar> + </ui-app> + </nav> + + <div class="container container--default lg:py-4"> + {% block content %}{% endblock %} + </div> + + <footer class="footer bg-grey-700 text-white __js-root"> + <ui-app inline-template> + <div> + <div class="footer__main py-4 lg:py-16 container container--default"> + <section class="footer__brand"> + <a href="https://www.pirati.cz"> + <img src="{% static "uniweb/assets/images/logo.svg" %}" alt="logo pirátské strany" class="w-32 md:w-40 pb-6" /> + </a> + <p class="para hidden md:block md:mb-4 lg:mb-0 text-grey-200"> + <span class="copyleft inline-block">©</span> {% now "Y" %} Piráti. Všechna práva vyhlazena. Sdílejte a nechte ostatní sdílet za stejných podmínek. + </p> + </section> + <section class="footer__social lg:text-right"> + <div class="mb-4"> + <div class="social-icon-group space-x-2 text-white pb-4"> + <a href="https://www.pirati.cz" class="social-icon "><i class="ico--home"></i></a> + <a href="https://www.facebook.com/ceska.piratska.strana/" class="social-icon "><i class="ico--facebook"></i></a> + <a href="https://twitter.com/PiratskaStrana" class="social-icon "><i class="ico--twitter"></i></a> + <a href="https://www.youtube.com/user/CeskaPiratskaStrana" class="social-icon "><i class="ico--youtube"></i></a> + <a href="https://www.instagram.com/pirati.cz/" class="social-icon "><i class="ico--instagram"></i></a> + <a href="https://www.flickr.com/photos/pirati/" class="social-icon "><i class="ico--flickr"></i></a> + </div> + </div> + <div class="flex flex-col md:flex-row lg:flex-col lg:items-end space-y-2 md:space-y-0 md:space-x-2 lg:space-x-0 lg:space-y-2"> + <a href="https://dary.pirati.cz" class="btn btn--icon btn--cyan-200 btn--hoveractive text-lg btn--fullwidth sm:btn--autowidth"> + <div class="btn__body-wrap"> + <div class="btn__body ">Přispěj</div> + <div class="btn__icon "> + <i class="ico--pig"></i> + </div> + </div> + </a> + <a href="https://nalodeni.pirati.cz" class="btn btn--icon btn--blue-300 btn--hoveractive text-lg btn--fullwidth sm:btn--autowidth"> + <div class="btn__body-wrap"> + <div class="btn__body ">Naloď se</div> + <div class="btn__icon "> + <i class="ico--anchor"></i> + </div> + </div> + </a> + </div> + </section> + </div> + </div> + </ui-app> + </footer> + + <script src="{% static "uniweb/assets/js/vue.2.6.11.js" %}"></script> + <script src="{% static "uniweb/assets/js/main.bundle.js" %}"></script> + <script src="{% static "shared/vendor/jquery/jquery-3.4.1.min.js" %}"></script> + <script src="{% static "shared/vendor/lazysizes/lazysizes.min.js" %}"></script> + <script src="{% static "shared/vendor/fancybox/jquery.fancybox.min.js" %}"></script> +</body> +</html> diff --git a/district/templates/district/district_home_page.html b/district/templates/district/district_home_page.html new file mode 100644 index 0000000000000000000000000000000000000000..f9ddc78e7a0c622f9ecdf0a31b280322bc52cd1a --- /dev/null +++ b/district/templates/district/district_home_page.html @@ -0,0 +1,22 @@ +{% extends "district/base.html" %} +{% load wagtailcore_tags %} + +{% block content %} +<main> + + <div class="d-flex"> + + <a href="{{page.facebook}}" class="super-button bg-brands-facebook text-white container-padding--zero lg:container-padding--auto lg:w-full m-2" > + <span class="super-button__body">Sledujte nás na Facebooku</span> + <i class="super-button__icon ico--facebook"></i> + </a> + + <a href="{{ page.forum }}" class="super-button bg-black text-white container-padding--zero lg:container-padding--auto lg:w-full m-2" > + <span class="super-button__body">Sledujte naše fórum</span> + <i class="super-button__icon ico--bubbles"></i> + </a> + + </div> + +</main> +{% endblock %} diff --git a/majak/settings/base.py b/majak/settings/base.py index 0f7c6d6a67c1aee5116fa8e7c8c7f7b09270e867..ff8380ff26e04885fe7e9094cabbc7e0dcef6c52 100644 --- a/majak/settings/base.py +++ b/majak/settings/base.py @@ -40,6 +40,8 @@ INSTALLED_APPS = [ "home", "program2021", "uniweb", + "region", + "district", "shared", "calendar_utils", "users", diff --git a/region/__init__.py b/region/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/region/apps.py b/region/apps.py new file mode 100644 index 0000000000000000000000000000000000000000..79e029812f9ec7ad9db8ebcd08f9a02d7aa86fa3 --- /dev/null +++ b/region/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class RegionConfig(AppConfig): + name = "region" diff --git a/region/migrations/__init__.py b/region/migrations/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/region/models.py b/region/models.py new file mode 100644 index 0000000000000000000000000000000000000000..71a836239075aa6e6e4ecb700e9c42c95c022d91 --- /dev/null +++ b/region/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here.