From eecd0e50f5b0378fed8b095cac27939bd64dbb63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com> Date: Wed, 17 Feb 2021 15:58:28 +0100 Subject: [PATCH] shared: ArticleMixin upgrades --- shared/models.py | 18 ++++++++++++++- .../styleguide/2.3.x/article_card.html | 23 ++++++++----------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/shared/models.py b/shared/models.py index b2469220..6ac73c33 100644 --- a/shared/models.py +++ b/shared/models.py @@ -25,7 +25,11 @@ class SubpageMixin: class ArticleMixin(models.Model): - """Common fields for articles""" + """ + Common fields for articles + + If you want to tag articles, add tags as `tags` field in article page model. + """ RICH_TEXT_FEATURES = [ "h2", @@ -66,6 +70,18 @@ class ArticleMixin(models.Model): class Meta: abstract = True + @classmethod + def has_tags(cls): + try: + cls._meta.get_field("tags") + except models.FieldDoesNotExist: + return False + return True + + def tag_filter_page(self): + """Page used for filtering by tags in url like `?tag=foo`.""" + return self.get_parent() + class Person(models.Model): """Informace o Piratovi. Slouzi prevazne jako cache informaci o osobe pro diff --git a/shared/templates/styleguide/2.3.x/article_card.html b/shared/templates/styleguide/2.3.x/article_card.html index 24edf2f6..0759bab0 100644 --- a/shared/templates/styleguide/2.3.x/article_card.html +++ b/shared/templates/styleguide/2.3.x/article_card.html @@ -41,20 +41,15 @@ </a> <p class="card-body-text flex-grow">{{ article.perex }}</p> - {# TODO tags #} - {% comment %} - <div class="inline-block-nogap mt-4"> - <button class="btn article-card__category-button btn--grey-125 btn--condensed text-sm font-light"> - <div class="btn__body ">Kategorie 1</div> - </button> - <button class="btn article-card__category-button btn--grey-125 btn--condensed text-sm font-light"> - <div class="btn__body ">Kategorie 2</div> - </button> - <button class="btn article-card__category-button btn--grey-125 btn--condensed text-sm font-light"> - <div class="btn__body ">Dlouhá kategorie 3</div> - </button> - </div> - {% endcomment %} + {% if article.has_tags %} + <div class="inline-block-nogap mt-4"> + {% for tag in article.tags.all %} + <a href="{% pageurl article.tag_filter_page %}?tag={{ tag }}" class="btn article-card__category-button btn--grey-125 btn--condensed text-sm font-light"> + <div class="btn__body ">{{ tag }}</div> + </a> + {% endfor %} + </div> + {% endif %} </div> </article> -- GitLab