Skip to content
Snippets Groups Projects
Commit ad65874d authored by jarmil's avatar jarmil Committed by jan.bednarik
Browse files

Pruzne cilove skupiny u programovych bodu. Solves #20

parent ae5eaace
No related branches found
No related tags found
No related merge requests found
# Generated by Django 3.1.1 on 2020-09-30 10:30
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("program2021", "0003_program2021pointpage_image_title"),
]
operations = [
migrations.CreateModel(
name="Program2021TargetGroup",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=200)),
],
),
migrations.CreateModel(
name="Program2021TargetGroupBenefit",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("benefit", models.CharField(max_length=200)),
(
"program_point",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="program2021.program2021pointpage",
),
),
(
"target_group",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="program2021.program2021targetgroup",
),
),
],
),
migrations.AddField(
model_name="program2021pointpage",
name="benefits",
field=models.ManyToManyField(
through="program2021.Program2021TargetGroupBenefit",
to="program2021.Program2021TargetGroup",
),
),
]
# Generated by Django 3.1.1 on 2020-09-30 11:28
import django.db.models.deletion
import modelcluster.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("program2021", "0004_auto_20200930_1230"),
]
operations = [
migrations.AlterModelOptions(
name="program2021targetgroup",
options={
"verbose_name": "Cílová skupina",
"verbose_name_plural": "Cílové skupiny",
},
),
migrations.RemoveField(
model_name="program2021pointpage", name="benefits_companies",
),
migrations.RemoveField(
model_name="program2021pointpage", name="benefits_public_money",
),
migrations.RemoveField(
model_name="program2021pointpage", name="benefits_self_employed",
),
migrations.AlterField(
model_name="program2021targetgroupbenefit",
name="program_point",
field=modelcluster.fields.ParentalKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="my_benefits",
to="program2021.program2021pointpage",
),
),
]
......@@ -115,6 +115,31 @@ class Program2021PointPageTag(TaggedItemBase):
)
class Program2021TargetGroup(models.Model):
""" Ciselnik: cilove skupiny pro programove body """
name = models.CharField(max_length=200)
panels = [FieldPanel("name")]
def __str__(self):
return self.name
class Meta:
verbose_name_plural = "Cílové skupiny"
verbose_name = "Cílová skupina"
class Program2021TargetGroupBenefit(models.Model):
""" Many2Many vazba programovy bod - cilova skupina. Popis, jaky benefit bod skupine prinese """
target_group = models.ForeignKey("Program2021TargetGroup", on_delete=models.CASCADE)
program_point = ParentalKey(
"Program2021PointPage", on_delete=models.CASCADE, related_name="my_benefits"
)
benefit = models.CharField(max_length=200)
class Program2021PointPage(Page, MetadataPageMixin):
RICH_TEXT_FEATURES = ["bold", "italic", "ol", "ul", "link", "document-link"]
......@@ -150,27 +175,10 @@ class Program2021PointPage(Page, MetadataPageMixin):
ideal = models.TextField(
"ideál", max_length=280, blank=True, null=True, help_text="Max 280 znaků."
)
benefits_self_employed = models.TextField(
"benefity OSVČ",
max_length=250,
blank=True,
null=True,
help_text="Stručný popis dopadu na danou cílovou skupinu. Max 140 znaků.",
)
benefits_companies = models.TextField(
"benefity firmy",
max_length=250,
blank=True,
null=True,
help_text="Stručný popis dopadu na danou cílovou skupinu. Max 140 znaků.",
)
benefits_public_money = models.TextField(
"benefity veřejné finance",
max_length=250,
blank=True,
null=True,
help_text="Rozpracuje tým finance. Úkolem finančního týmu není zpracovat to, ale dát k tomu metodiku a metodickou pomoc. V případě žádosti o pomoc se obracejte prosím na finančního analytika poslaneckého klubu Tomáše Kopečného. Max 140 znaků.",
benefits = models.ManyToManyField(
Program2021TargetGroup, through=Program2021TargetGroupBenefit
)
already_done = RichTextField(
"co jsme už udělali",
max_length=1800,
......@@ -286,15 +294,15 @@ class Program2021PointPage(Page, MetadataPageMixin):
benefits_content_panels = [
HelpPanel(
"V této části rozpracováváme benefity tak, abychom je mohli souhrnně nabídnout dané cílové skupině. Negativní věci zpracováváme typicky do často kladených otázek dole. U negativ se však vždy prezentuje i související přínos (tzv. balíčkovací zásada, např. snížíme daně z práce díky lepšímu zdanění zisků dnes vyváděných do zahraničí), aby nikdo nemohl takový bod vytrhnout z kontextu a prezentovat proti nám."
),
MultiFieldPanel(
[
FieldPanel("benefits_self_employed"),
FieldPanel("benefits_companies"),
FieldPanel("benefits_public_money"),
]
""" V této části rozpracováváme benefity tak, abychom je mohli souhrnně nabídnout dané cílové skupině.
Negativní věci zpracováváme typicky do často kladených otázek dole.
U negativ se však vždy prezentuje i související přínos (tzv. balíčkovací zásada, např. snížíme daně
z práce díky lepšímu zdanění zisků dnes vyváděných do zahraničí), aby nikdo nemohl takový bod
vytrhnout z kontextu a prezentovat proti nám.
Cílové skupiny můžete definovat z levého menu.
"""
),
InlinePanel("my_benefits", label="Benefity"),
]
faq_content_panels = [
......
......@@ -57,12 +57,10 @@
<div class="col-md-6 pr-5">
<h3>Benefity</h3>
<h5 class="mt-4">OSVČ</h5>
<p>{{ page.benefits_self_employed }}</p>
<h5 class="mt-4">Firmy</h5>
<p>{{ page.benefits_companies }}</p>
<h5 class="mt-4">Veřejné finance</h5>
<p>{{ page.benefits_public_money }}</p>
{% for benefit in page.my_benefits.all %}
<h5 class="mt-4">{{ benefit.target_group }}</h5>
<p>{{ benefit.benefit }}</p>
{% endfor %}
</div>
<div class="col-md-6 pl-5">
......
""" Pridani editace non-page modelu do wagtail administrace """
from wagtail.contrib.modeladmin.options import ModelAdmin, modeladmin_register
from .models import Program2021TargetGroup
class TargetGroupAdmin(ModelAdmin):
model = Program2021TargetGroup
menu_icon = "group"
menu_order = 200
add_to_settings_menu = False
exclude_from_explorer = False
list_display = ("name",)
search_fields = ("name",)
modeladmin_register(TargetGroupAdmin)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment