From b4bf68fd07c8e58c03408db1acd62dd4727c1ed6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?= <benjamin.haettasch@cs.tu-darmstadt.de> Date: Fri, 18 Oct 2019 16:29:34 +0200 Subject: [PATCH] Introduce and use custom templatetags for AKSubmission Created filter to represent values using fontawesome icons Added template tags (and corresponding templates) for category and tag lists and badges Adapted existing view templates to use these tags Fixed presentation of AK indicator --- .../locale/de_DE/LC_MESSAGES/django.po | 56 +++++++++---------- .../templates/AKSubmission/ak_detail.html | 20 +++---- .../templates/AKSubmission/ak_list.html | 12 ++-- .../templates/AKSubmission/ak_list_table.html | 19 +++---- .../AKSubmission/category_linked_badge.html | 3 + .../templates/AKSubmission/category_list.html | 5 ++ .../templates/AKSubmission/tags_list.html | 3 + .../templatetags/tags_AKSubmission.py | 26 +++++++++ 8 files changed, 89 insertions(+), 55 deletions(-) create mode 100644 AKSubmission/templates/AKSubmission/category_linked_badge.html create mode 100644 AKSubmission/templates/AKSubmission/category_list.html create mode 100644 AKSubmission/templates/AKSubmission/tags_list.html create mode 100644 AKSubmission/templatetags/tags_AKSubmission.py diff --git a/AKSubmission/locale/de_DE/LC_MESSAGES/django.po b/AKSubmission/locale/de_DE/LC_MESSAGES/django.po index f314d96f..9be06efe 100644 --- a/AKSubmission/locale/de_DE/LC_MESSAGES/django.po +++ b/AKSubmission/locale/de_DE/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-18 11:09+0000\n" +"POT-Creation-Date: 2019-10-18 14:15+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,70 +17,70 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: templates/AKSubmission/ak_detail.html:6 -#: templates/AKSubmission/ak_detail.html:11 -#: templates/AKSubmission/ak_detail.html:16 -#: templates/AKSubmission/ak_list.html:6 templates/AKSubmission/ak_list.html:11 -#: templates/AKSubmission/ak_list.html:16 +#: templates/AKSubmission/ak_detail.html:8 +#: templates/AKSubmission/ak_detail.html:13 +#: templates/AKSubmission/ak_detail.html:18 +#: templates/AKSubmission/ak_list.html:8 templates/AKSubmission/ak_list.html:13 +#: templates/AKSubmission/ak_list.html:18 #: templates/AKSubmission/submission_overview.html:6 #: templates/AKSubmission/submission_overview.html:11 #: templates/AKSubmission/submission_overview.html:15 msgid "AK Submission" msgstr "AK-Eintragung" -#: templates/AKSubmission/ak_detail.html:28 -#: templates/AKSubmission/ak_list_table.html:6 +#: templates/AKSubmission/ak_detail.html:30 +#: templates/AKSubmission/ak_list_table.html:10 msgid "Who?" msgstr "Wer?" -#: templates/AKSubmission/ak_detail.html:29 -#: templates/AKSubmission/ak_list_table.html:6 +#: templates/AKSubmission/ak_detail.html:32 +#: templates/AKSubmission/ak_list_table.html:11 msgid "Category" msgstr "Kategorie" -#: templates/AKSubmission/ak_detail.html:31 -#: templates/AKSubmission/ak_list.html:25 -#: templates/AKSubmission/ak_list_table.html:6 +#: templates/AKSubmission/ak_detail.html:38 +msgid "Present this AK" +msgstr "Diesen AK vorstellen" + +#: templates/AKSubmission/ak_detail.html:42 +#: templates/AKSubmission/ak_list.html:26 +#: templates/AKSubmission/ak_list_table.html:12 msgid "Tags" msgstr "Tags" -#: templates/AKSubmission/ak_detail.html:39 +#: templates/AKSubmission/ak_detail.html:48 msgid "Reso?" msgstr "Reso?" -#: templates/AKSubmission/ak_detail.html:55 +#: templates/AKSubmission/ak_detail.html:60 msgid "When?" msgstr "Wann?" -#: templates/AKSubmission/ak_detail.html:56 +#: templates/AKSubmission/ak_detail.html:61 msgid "Duration" msgstr "Dauer" -#: templates/AKSubmission/ak_detail.html:57 +#: templates/AKSubmission/ak_detail.html:62 msgid "Room" msgstr "Raum" -#: templates/AKSubmission/ak_list.html:12 +#: templates/AKSubmission/ak_list.html:14 msgid "AKs" msgstr "AKs" -#: templates/AKSubmission/ak_list.html:18 -#, fuzzy -#| msgid "Category" +#: templates/AKSubmission/ak_list.html:20 msgid "Categories" msgstr "Kategorie" -#: templates/AKSubmission/ak_list_table.html:6 +#: templates/AKSubmission/ak_list_table.html:9 msgid "Name" msgstr "Name" -#: templates/AKSubmission/ak_list_table.html:13 -#, fuzzy -#| msgid "Current AKs" -msgid "Present AK" -msgstr "Aktuelle AKs" +#: templates/AKSubmission/ak_list_table.html:22 +msgid "present this AK" +msgstr "Diesen AK vorstellen" -#: templates/AKSubmission/ak_list_table.html:15 +#: templates/AKSubmission/ak_list_table.html:25 msgid "Reso" msgstr "Reso" diff --git a/AKSubmission/templates/AKSubmission/ak_detail.html b/AKSubmission/templates/AKSubmission/ak_detail.html index d5a58cbf..d68f3fc7 100644 --- a/AKSubmission/templates/AKSubmission/ak_detail.html +++ b/AKSubmission/templates/AKSubmission/ak_detail.html @@ -3,6 +3,8 @@ {% load i18n %} {% load fontawesome %} +{% load tags_AKSubmission %} + {% block title %}{{ ak.event.slug }} - {% trans "AK Submission" %} - {{ ak.slug }}{% endblock %} {% block breadcrumbs %} @@ -29,25 +31,23 @@ <tr> <td>{% trans 'Category' %}</td> <td> - <a href="{% url 'submit:ak_list_by_category' event_slug=ak.event.slug category_pk=ak.category.pk %}"><span - class="badge badge-primary">{{ ak.category }}</span></a></td> + {% category_linked_badge ak.category ak.event.slug %} + </td> + </tr> + <tr> + <td>{% trans "Present this AK" %}</td> + <td>{{ ak.present | bool_symbol }}</td> </tr> <tr> <td>{% trans "Tags" %}</td> <td> - {% for tag in ak.tags.all %} - <a href="{% url 'submit:ak_list_by_tag' event_slug=ak.event.slug tag_pk=tag.pk %}"><span class="badge badge-info">{{ tag }}</span></a> - {% endfor %} + {% tag_list ak.tags.all ak.event.slug %} </td> </tr> <tr> <td>{% trans "Reso?" %}</td> <td> - {% if ak.reso %} - {% fontawesome_icon "check" %} - {% else %} - {% fontawesome_icon "times" %} - {% endif %} + {{ ak.reso | bool_symbol }} </td> </tr> </table> diff --git a/AKSubmission/templates/AKSubmission/ak_list.html b/AKSubmission/templates/AKSubmission/ak_list.html index 7a70d924..5af4b43f 100644 --- a/AKSubmission/templates/AKSubmission/ak_list.html +++ b/AKSubmission/templates/AKSubmission/ak_list.html @@ -3,6 +3,8 @@ {% load i18n %} {% load fontawesome %} +{% load tags_AKSubmission %} + {% block title %}{{ event.slug }} - {% trans "AK Submission" %}{% endblock %} {% block breadcrumbs %} @@ -16,17 +18,13 @@ <h1>{{ event.name }}: {% trans "AK Submission" %}</h1> <b>{% trans 'Categories' %}:</b> - {% for category in categories %} - <a href="{% url 'submit:ak_list_by_category' event_slug=event.slug category_pk=category.pk %}"><span - class="badge badge-primary">{{ category }}</span></a> - {% endfor %} + {% category_list categories event.slug %} + <br><br> <b>{% trans 'Tags' %}:</b> - {% for tag in tags.all %} - <a href="{% url 'submit:ak_list_by_tag' event_slug=event.slug tag_pk=tag.pk %}"><span class="badge badge-primary">{{ tag }}</span></a> - {% endfor %} + {% tag_list tags.all event.slug %} <br><br> diff --git a/AKSubmission/templates/AKSubmission/ak_list_table.html b/AKSubmission/templates/AKSubmission/ak_list_table.html index 06b13a1b..275bbc7c 100644 --- a/AKSubmission/templates/AKSubmission/ak_list_table.html +++ b/AKSubmission/templates/AKSubmission/ak_list_table.html @@ -1,6 +1,8 @@ {% load i18n %} {% load fontawesome %} +{% load tags_AKSubmission %} + <table id="akTable" class="table table-striped"> <thead> <tr> @@ -16,22 +18,19 @@ <tr> <td> <b>{{ ak.name }}</b> - <span class="badge badge-dark badge-pill" title="{% trans 'Present AK' %}">{% fontawesome_icon "bullhorn" %}</span> + {% if ak.present %} + <span class="badge badge-dark badge-pill" title="{% trans 'present this AK' %}">{% fontawesome_icon "bullhorn" %}</span> + {% endif %} {% if ak.reso %} - <span class="badge badge-dark badge-pill" title="{% trans 'Reso' %}">{% fontawesome_icon "scroll" %}</span> + <span class="badge badge-dark badge-pill" title="{% trans 'Reso' %}">{% fontawesome_icon "scroll" %}</span> {% endif %} </td> <td>{{ ak.owners_list }}</td> - <td><a href="{% url 'submit:ak_list_by_category' event_slug=event.slug category_pk=ak.category.pk %}"><span - class="badge badge-primary">{{ ak.category }}</span></a></td> - <td> - {% for tag in ak.tags.all %} - <a href="{% url 'submit:ak_list_by_tag' event_slug=event.slug tag_pk=tag.pk %}"><span class="badge badge-info">{{ tag }}</span></a> - {% endfor %} - </td> + <td>{% category_linked_badge ak.category event.slug %}</td> + <td>{% tag_list ak.tags.all event.slug %}</td> <td class="text-right"> <a href="{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}" class="btn btn-primary">{% fontawesome_icon 'info' %}</a> - {% if ak.link != "" %} + {% if ak.link %} <a href="{{ ak.link }}" class="btn btn-info">{% fontawesome_icon 'external-link-alt' %}</a> {% endif %} <a href="#" class="btn btn-success">{% fontawesome_icon 'pencil-alt' %}</a> diff --git a/AKSubmission/templates/AKSubmission/category_linked_badge.html b/AKSubmission/templates/AKSubmission/category_linked_badge.html new file mode 100644 index 00000000..41e5435a --- /dev/null +++ b/AKSubmission/templates/AKSubmission/category_linked_badge.html @@ -0,0 +1,3 @@ +<a href="{% url 'submit:ak_list_by_category' event_slug=event_slug category_pk=category.pk %}"> + <span class="badge badge-primary">{{ category }}</span> +</a> diff --git a/AKSubmission/templates/AKSubmission/category_list.html b/AKSubmission/templates/AKSubmission/category_list.html new file mode 100644 index 00000000..978c646f --- /dev/null +++ b/AKSubmission/templates/AKSubmission/category_list.html @@ -0,0 +1,5 @@ +{% load tags_AKSubmission %} + +{% for category in categories %} + {% category_linked_badge category event_slug %} +{% endfor %} diff --git a/AKSubmission/templates/AKSubmission/tags_list.html b/AKSubmission/templates/AKSubmission/tags_list.html new file mode 100644 index 00000000..e12860cc --- /dev/null +++ b/AKSubmission/templates/AKSubmission/tags_list.html @@ -0,0 +1,3 @@ +{% for tag in tags.all %} + <a href="{% url 'submit:ak_list_by_tag' event_slug=event_slug tag_pk=tag.pk %}"><span class="badge badge-info">{{ tag }}</span></a> +{% endfor %} diff --git a/AKSubmission/templatetags/tags_AKSubmission.py b/AKSubmission/templatetags/tags_AKSubmission.py new file mode 100644 index 00000000..22445335 --- /dev/null +++ b/AKSubmission/templatetags/tags_AKSubmission.py @@ -0,0 +1,26 @@ +from django import template +from fontawesome.templatetags.fontawesome import fontawesome_icon + +register = template.Library() + + +@register.filter +def bool_symbol(bool_val): + if bool_val: + return fontawesome_icon("check") + return fontawesome_icon("times") + + +@register.inclusion_tag("AKSubmission/tags_list.html") +def tag_list(tags, event_slug): + return {"tags": tags, "event_slug": event_slug} + + +@register.inclusion_tag("AKSubmission/category_list.html") +def category_list(categories, event_slug): + return {"categories": categories, "event_slug": event_slug} + + +@register.inclusion_tag("AKSubmission/category_linked_badge.html") +def category_linked_badge(category, event_slug): + return {"category": category, "event_slug": event_slug} -- GitLab