From 19b29ed857c1fe92940d4c62bd18d71176b561ff Mon Sep 17 00:00:00 2001 From: Stefan Wehrmeyer Date: Tue, 1 Mar 2022 10:48:34 +0100 Subject: [PATCH] Add card columns template --- froide_govplan/models.py | 13 ++++++ .../templates/froide_govplan/detail.html | 2 +- .../froide_govplan/plugins/card_cols.html | 42 +++++++++++++++++++ froide_govplan/templatetags/govplan.py | 10 +---- 4 files changed, 57 insertions(+), 10 deletions(-) create mode 100644 froide_govplan/templates/froide_govplan/plugins/card_cols.html diff --git a/froide_govplan/models.py b/froide_govplan/models.py index aa85f99..e5f6f59 100644 --- a/froide_govplan/models.py +++ b/froide_govplan/models.py @@ -27,6 +27,15 @@ class PlanStatus(models.TextChoices): DEFERRED = ("deferred", _("deferred")) +STATUS_CSS = { + PlanStatus.NOT_STARTED: "secondary", + PlanStatus.STARTED: "primary", + PlanStatus.PARTIALLY_IMPLEMENTED: "warning", + PlanStatus.IMPLEMENTED: "success", + PlanStatus.DEFERRED: "danger", +} + + class PlanRating(models.IntegerChoices): TERRIBLE = 1, _("terrible") BAD = 2, _("bad") @@ -168,6 +177,9 @@ class GovernmentPlan(models.Model): if last_status_update or last_rating_update: self.save() + def get_status_css(self): + return STATUS_CSS.get(self.status, "") + class GovernmentPlanUpdate(models.Model): plan = models.ForeignKey( @@ -230,6 +242,7 @@ if CMSPlugin: PLUGIN_TEMPLATES = [ ("froide_govplan/plugins/default.html", _("Normal")), ("froide_govplan/plugins/progress.html", _("Progress")), + ("froide_govplan/plugins/card_cols.html", _("Card columns")), ] class GovernmentPlansCMSPlugin(CMSPlugin): diff --git a/froide_govplan/templates/froide_govplan/detail.html b/froide_govplan/templates/froide_govplan/detail.html index ae46cb2..ba53cab 100644 --- a/froide_govplan/templates/froide_govplan/detail.html +++ b/froide_govplan/templates/froide_govplan/detail.html @@ -26,7 +26,7 @@
Status
{{ object.get_status_display }}
{% if object.rating %} -
Rating
+
Bewertung
{{ object.get_rating_display }}
{% endif %} {% if object.measure %} diff --git a/froide_govplan/templates/froide_govplan/plugins/card_cols.html b/froide_govplan/templates/froide_govplan/plugins/card_cols.html new file mode 100644 index 0000000..0583ca3 --- /dev/null +++ b/froide_govplan/templates/froide_govplan/plugins/card_cols.html @@ -0,0 +1,42 @@ +{% load thumbnail %} + +
+ {% for object in object_list %} +
+ {% if object.image %} + + {% with picture=object.image %} + + {% thumbnail picture 540x0 crop=smart subject_location=picture.subject_location as thumb%} + + {{ picture.default_alt_text }} + + {% endwith %} + + {% endif %} +
+
+ + {{ object.title }} + +
+

+ {{ object.description|striptags|truncatewords:30 }} +

+
+
    +
  • + Status: + + {{ object.get_status_display }} + +
  • +
+
+ {% endfor %} +
diff --git a/froide_govplan/templatetags/govplan.py b/froide_govplan/templatetags/govplan.py index 4f1ae87..e1a8e05 100644 --- a/froide_govplan/templatetags/govplan.py +++ b/froide_govplan/templatetags/govplan.py @@ -1,17 +1,9 @@ from django import template -from froide_govplan.models import PlanStatus +from froide_govplan.models import STATUS_CSS, PlanStatus register = template.Library() -STATUS_CSS = { - PlanStatus.NOT_STARTED: "secondary", - PlanStatus.STARTED: "primary", - PlanStatus.PARTIALLY_IMPLEMENTED: "warning", - PlanStatus.IMPLEMENTED: "success", - PlanStatus.DEFERRED: "danger", -} - @register.simple_tag def get_plan_progress(object_list):