From fda46db5b1fef2a4f8c2f050a596e8c62c740664 Mon Sep 17 00:00:00 2001 From: "jindra12.underdark" <jindra12.underdark@gmail.com> Date: Mon, 17 Jul 2023 00:45:39 +0200 Subject: [PATCH] Finish district articles page #210 --- district/models.py | 13 +++++++------ shared/models.py | 13 +++++++------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/district/models.py b/district/models.py index 3ccbf6fcc..c006cba7b 100644 --- a/district/models.py +++ b/district/models.py @@ -585,7 +585,7 @@ class DistrictArticlesPage( tag = None try: - tag = Tag.objects.filter(tag__slug=request.GET["tag"])[0].tag + tag = Tag.objects.filter(slug=request.GET["tag"])[0] article_page_qs = self.append_all_shared_articles( DistrictArticlePage.objects.filter( id__in=site_article_ids, tags__slug=tag.slug @@ -603,7 +603,7 @@ class DistrictArticlesPage( return { "article_page_list": Paginator( - article_page_qs.order_by("-date"), + article_page_qs, self.max_items, ).get_page(request.GET.get("page")), "tag": tag, @@ -616,10 +616,11 @@ class DistrictArticlesPage( """ return self.search_tags_by_article_id( site_article_ids, - additional_query=lambda query: query.annotate(count=models.Count("slug")), - custom_query_to_values=lambda query: query.order_by("slug").values( - "name", "slug", "count" - ), + custom_query_to_values=lambda query: query.annotate( + count=models.Count("slug") + ) + .order_by("slug") + .values("name", "slug", "count"), ) diff --git a/shared/models.py b/shared/models.py index eef7456d9..086796e2e 100644 --- a/shared/models.py +++ b/shared/models.py @@ -465,7 +465,7 @@ class ArticlesMixin(models.Model): self, previous_query: models.QuerySet | None = None, filter=None ): results = self.append_all_shared_articles_query(previous_query, filter) - return results.values_list("id", Flat=True) + return results.values_list("id", flat=True) def append_all_shared_articles( self, previous_query: models.QuerySet | None = None, filter=None @@ -557,12 +557,13 @@ class ArticlesMixin(models.Model): union = district_tags.union(uniweb_tags).union(main_tags) + union = union.values_list("id") + tag_query = Tag.objects.filter(id__in=union) + if custom_query_to_values is not None: - union = custom_query_to_values(union) - return union - else: - union = union.values_list("id") - return Tag.objects.filter(id__in=union) + tag_query = custom_query_to_values(tag_query) + + return tag_query def search_tags_by_tag_name(self, tag: str): return { -- GitLab