Skip to content
Snippets Groups Projects
Commit 5601760c authored by OndraRehounek's avatar OndraRehounek
Browse files

district: Static program block available

parent fc7e3aec
No related branches found
No related tags found
2 merge requests!418Release,!414district and region modules
Pipeline #6094 passed
......@@ -33,14 +33,33 @@ class PeopleGroupListBlock(StructBlock):
label = "Skupina členů"
# TODO static alternative to this Redmine version
class ProgramBlock(StructBlock):
class ProgramItemBlock(StructBlock):
title = CharBlock(label="Název", required=True)
completion_percentage = IntegerBlock(label="Procento dokončení", required=True)
class StaticProgramBlock(StructBlock):
headline = CharBlock(label="Titulek bloku", required=True)
perex = TextBlock(label="Krátký text pod nadpisem", required=True)
person = PageChooserBlock(label="Garant", page_type=["district.DistrictPersonPage"])
redmine_issue = IntegerBlock(label="Číslo Redmine issue", required=True)
completion_percentage = IntegerBlock(label="Procento dokončení", required=True)
program_items = ListBlock(ProgramItemBlock())
# program_items = TableBlock(label="Tabulka plnění programu", required=True)
person = PageChooserBlock(label="Garant", page_type=["district.DistrictPersonPage"])
class Meta:
template = "district/blocks/program_block.html"
template = "district/blocks/static_program_block.html"
icon = "list-ul"
label = "Blok programu"
class RedmineProgramBlock(StructBlock):
headline = CharBlock(label="Titulek bloku", required=True)
perex = TextBlock(label="Krátký text pod nadpisem", required=True)
person = PageChooserBlock(label="Garant", page_type=["district.DistrictPersonPage"])
redmine_issue = IntegerBlock(label="Číslo Redmine issue", required=True)
class Meta:
template = "district/blocks/redmine_program_block.html"
icon = "site"
label = "Blok programu stahovaný z Redmine"
# Generated by Django 3.2.8 on 2021-11-16 14:53
import wagtail.core.blocks
import wagtail.core.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("district", "0007_districtpeoplepage_content"),
]
operations = [
migrations.AlterField(
model_name="districtpeoplepage",
name="content",
field=wagtail.core.fields.StreamField(
[
(
"people_group",
wagtail.core.blocks.StructBlock(
[
(
"group_title",
wagtail.core.blocks.CharBlock(
label="Titulek", required=True
),
),
(
"person_list",
wagtail.core.blocks.ListBlock(
wagtail.core.blocks.PageChooserBlock(
label="Osoba",
page_type=["district.DistrictPersonPage"],
),
label="List osob",
),
),
]
),
)
],
blank=True,
verbose_name="Obsah stránky",
),
),
migrations.AlterField(
model_name="districtprogrampage",
name="content",
field=wagtail.core.fields.StreamField(
[
(
"static_program_block",
wagtail.core.blocks.StructBlock(
[
(
"headline",
wagtail.core.blocks.CharBlock(
label="Titulek bloku", required=True
),
),
(
"perex",
wagtail.core.blocks.TextBlock(
label="Krátký text pod nadpisem", required=True
),
),
(
"completion_percentage",
wagtail.core.blocks.IntegerBlock(
label="Procento dokončení", required=True
),
),
(
"program_items",
wagtail.core.blocks.ListBlock(
wagtail.core.blocks.StructBlock(
[
(
"title",
wagtail.core.blocks.CharBlock(
label="Název", required=True
),
),
(
"completion_percentage",
wagtail.core.blocks.IntegerBlock(
label="Procento dokončení",
required=True,
),
),
]
)
),
),
(
"person",
wagtail.core.blocks.PageChooserBlock(
label="Garant",
page_type=["district.DistrictPersonPage"],
),
),
]
),
),
(
"redmine_program_block",
wagtail.core.blocks.StructBlock(
[
(
"headline",
wagtail.core.blocks.CharBlock(
label="Titulek bloku", required=True
),
),
(
"perex",
wagtail.core.blocks.TextBlock(
label="Krátký text pod nadpisem", required=True
),
),
(
"person",
wagtail.core.blocks.PageChooserBlock(
label="Garant",
page_type=["district.DistrictPersonPage"],
),
),
(
"redmine_issue",
wagtail.core.blocks.IntegerBlock(
label="Číslo Redmine issue", required=True
),
),
]
),
),
],
blank=True,
verbose_name="obsah stránky",
),
),
]
......@@ -21,7 +21,12 @@ from calendar_utils.models import CalendarMixin
from shared.models import ArticleMixin, Person, SubpageMixin
from uniweb.constants import RICH_TEXT_FEATURES
from .blocks import HomepageHeaderBlock, PeopleGroupListBlock, ProgramBlock
from .blocks import (
HomepageHeaderBlock,
PeopleGroupListBlock,
RedmineProgramBlock,
StaticProgramBlock,
)
class DistrictHomePage(MetadataPageMixin, CalendarMixin, Page):
......@@ -452,7 +457,8 @@ class DistrictProgramPage(SubpageMixin, MetadataPageMixin, Page):
perex = models.TextField("Perex", blank=True)
content = StreamField(
[
("program_block", ProgramBlock()),
("static_program_block", StaticProgramBlock()),
("redmine_program_block", RedmineProgramBlock()),
],
verbose_name="obsah stránky",
blank=True,
......
......
......@@ -18,11 +18,11 @@
<div class="card__body">
<div class="badge badge--condensed">
<a href="{{ self.person.url }}" class="avatar badge__avatar avatar--sm">
<img src="{{ self.person.name }}"alt="Martin Staněk">
<img src="{{ self.person.name }}" alt="{{ self.person.name }}">
</a>
<div class="badge__body">
<h2 class="head-heavy-2xs badge__title">
<a href="{{ self.person.url }}" title="Martin Staněk" class="content-block--nostyle">
<a href="{{ self.person.url }}" title="{{ self.person.name }}" class="content-block--nostyle">
{{ self.person.name }}
</a>
</h2>
......
......
<article class="mt-8">
<div class="lg:flex lg:space-x-16">
<div class="lg:w-3/5 xl:w-2/3">
<h2 class="head-heavy-sm mb-2 lg:mb-4">
{{ self.headline }}
</h2>
<div itemprop="description" class="w-full content-block">
<p>
{{ self.perex }}
</p>
</div>
</div>
<div class="pt-8 lg:w-1/3 md:pt-0">
<div class="card">
<div class="card__body">
<div class="badge badge--condensed">
<a href="{{ self.person.url }}" class="avatar badge__avatar avatar--sm">
<img src="{{ self.person.name }} "alt="{{ self.person.name }}">
</a>
<div class="badge__body">
<h2 class="head-heavy-2xs badge__title">
<a href="{{ self.person.url }}" title="{{ self.person.name }}" class="content-block--nostyle">
{{ self.person.name }}
</a>
</h2>
<p class="badge__occupation">
Garant
</p>
<a href="tel:775 058 555"
class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link">
<i class="ico--phone"></i>
<span>{{ self.person.phone }}</span>
</a>
<a href="mailto:martin.stanek@pirati.cz"
class="contact-line icon-link content-block--nostyle contact-line--responsive badge__link">
<i class="ico--envelope"></i>
<span>{{ self.person.email }}</span>
</a>
</div>
</div>
<div class="content-block">
<div class="space-y-4 mt-8">
<div>
<a href="https://redmine.pirati.cz/issues/28177" class="contact-line icon-link content-block--nostyle">
<i class="ico--info"></i>
<span id="redmineid_28177">Plnění programu: 10%</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="mt-4">
<table class="table table--striped table--bordered w-full">
<thead>
<tr>
<td>Název</td>
<td>Stav plnění</td>
</tr>
</thead>
<tbody>
{% for item in self.program_items %}
<tr>
<td>
<a href="{{ item.issue_link }}" target="_blank">
{{ item.title }}
</a>
</td>
<td>{{ item.completion_percentage }} %</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</article>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment