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 f314d96..9be06ef 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 d5a58cb..d68f3fc 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 7a70d92..5af4b43 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 06b13a1..275bbc7 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 0000000..41e5435 --- /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 0000000..978c646 --- /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 0000000..e12860c --- /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 0000000..2244533 --- /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