diff --git a/shared/models.py b/shared/models.py index 43cc1577f732940e581b44cabf053cb5624481a9..4001687010ba8f370aa8f8a04440fb565d85fa3d 100644 --- a/shared/models.py +++ b/shared/models.py @@ -290,53 +290,56 @@ class ArticlesMixin(models.Model): """ main_fields = { - "page_ptr_id": F("page_ptr_id"), - "perex": F("perex"), - "date": F("date"), - "author": F("author"), - "image_id": F("image_id"), - "search_image_id": F("search_image_id"), - "content": F("content"), - "author_page_id": F("author_page_id"), - "region": F("region"), - "article_type": F("article_type"), - "is_black": F("is_black"), - "thumb_image_id": F("search_image_id"), + "union_id": F("id"), + "union_page_ptr_id": F("page_ptr_id"), + "union_perex": F("perex"), + "union_date": F("date"), + "union_author": F("author"), + "union_image_id": F("image_id"), + "union_search_image_id": F("search_image_id"), + "union_content": F("content"), + "union_author_page_id": F("author_page_id"), + "union_region": F("region"), + "union_article_type": F("article_type"), + "union_is_black": F("is_black"), + "union_thumb_image_id": F("search_image_id"), } district_fields = { - "page_ptr_id": F("page_ptr_id"), - "perex": F("perex"), - "date": F("date"), - "author": F("author"), - "image_id": F("image_id"), - "search_image_id": F("search_image_id"), - "content": F("content"), - "author_page_id": F("author_page_id"), - "region": Value("", models.CharField()), - "article_type": Value(0, models.PositiveSmallIntegerField()), - "is_black": F("is_black"), - "thumb_image_id": F("thumb_image_id"), + "union_id": F("id"), + "union_page_ptr_id": F("page_ptr_id"), + "union_perex": F("perex"), + "union_date": F("date"), + "union_author": F("author"), + "union_image_id": F("image_id"), + "union_search_image_id": F("search_image_id"), + "union_content": F("content"), + "union_author_page_id": F("author_page_id"), + "union_region": Value("", models.CharField()), + "union_article_type": Value(0, models.PositiveSmallIntegerField()), + "union_is_black": F("is_black"), + "union_thumb_image_id": F("thumb_image_id"), } uniweb_fields = { - "page_ptr_id": F("page_ptr_id"), - "perex": F("perex"), - "date": F("date"), - "author": F("author"), - "image_id": F("image_id"), - "search_image_id": F("search_image_id"), - "content": F("content"), - "author_page_id": Value( + "union_id": F("id"), + "union_page_ptr_id": F("page_ptr_id"), + "union_perex": F("perex"), + "union_date": F("date"), + "union_author": F("author"), + "union_image_id": F("image_id"), + "union_search_image_id": F("search_image_id"), + "union_content": F("content"), + "union_author_page_id": Value( None, output_field=models.ForeignKey( DistrictArticlePage, blank=True, on_delete=models.SET_NULL ), ), - "region": Value("", models.CharField()), - "article_type": Value(0, models.PositiveSmallIntegerField()), - "is_black": Value(False, models.BooleanField()), - "thumb_image_id": F("search_image_id"), + "union_region": Value("", models.CharField()), + "union_article_type": Value(0, models.PositiveSmallIntegerField()), + "union_is_black": Value(False, models.BooleanField()), + "union_thumb_image_id": F("search_image_id"), } districtArticleQuery: models.QuerySet = DistrictArticlePage.objects @@ -416,11 +419,33 @@ class ArticlesMixin(models.Model): results = results.union(prepared_query) - results = results.order_by("date") - - print(results.query) + results = results.order_by("union_date") + + evaluated = list(results) + + mapped_to_real_values = list( + map( + lambda unioned: { + "id": unioned["union_id"], + "page_ptr_id": unioned["union_page_ptr_id"], + "perex": unioned["union_perex"], + "date": unioned["union_date"], + "author": unioned["union_author"], + "image_id": unioned["union_image_id"], + "search_image_id": unioned["union_search_image_id"], + "content": unioned["union_content"], + "author_page_id": unioned["union_author_page_id"], + "region": unioned["union_author_page_id"], + "article_type": unioned["union_article_type"], + "is_black": unioned["union_is_black"], + "thumb_image_id": unioned["union_thumb_image_id"], + "shared": unioned["shared"], + }, + evaluated, + ) + ) - return results + return mapped_to_real_values def get_article_page_by_slug(self, slug: str): articles = self.append_all_shared_articles()