From cf0a36527729acc81637ff2d2973ae32b941c017 Mon Sep 17 00:00:00 2001 From: Jake Howard Date: Thu, 28 Jul 2022 23:06:11 +0100 Subject: [PATCH] Ensure additional content fields get indexed --- website/blog/models.py | 6 ++++++ website/common/models.py | 7 +++++++ website/contact/models.py | 1 + website/search/models.py | 1 + 4 files changed, 15 insertions(+) diff --git a/website/blog/models.py b/website/blog/models.py index 7a05a0e..94eff1d 100644 --- a/website/blog/models.py +++ b/website/blog/models.py @@ -24,6 +24,7 @@ class BlogListPage(BaseContentMixin, RoutablePageMixin, BasePage): # type: igno "blog.BlogCollectionPage", ] content_panels = BasePage.content_panels + BaseContentMixin.content_panels + search_fields = BasePage.search_fields + BaseContentMixin.search_fields @cached_property def reading_time(self) -> int: @@ -71,6 +72,7 @@ class BlogListPage(BaseContentMixin, RoutablePageMixin, BasePage): # type: igno class BlogPostPage(BaseContentMixin, BasePage): # type: ignore[misc] subpage_types: list[Any] = [] parent_page_types = [BlogListPage, "blog.BlogCollectionPage"] + search_fields = BasePage.search_fields + BaseContentMixin.search_fields tags = ParentalManyToManyField("blog.BlogPostTagPage", blank=True) date = models.DateField(default=timezone.now) @@ -88,6 +90,7 @@ class BlogPostTagListPage(BaseContentMixin, BasePage): # type: ignore[misc] subpage_types = ["blog.BlogPostTagPage"] content_panels = BasePage.content_panels + BaseContentMixin.content_panels + search_fields = BasePage.search_fields + BaseContentMixin.search_fields @cached_property def table_of_contents(self) -> list[TocEntry]: @@ -107,6 +110,7 @@ class BlogPostTagPage(BaseContentMixin, RoutablePageMixin, BasePage): # type: i parent_page_types = [BlogPostTagListPage] content_panels = BasePage.content_panels + BaseContentMixin.content_panels + search_fields = BasePage.search_fields + BaseContentMixin.search_fields @cached_property def table_of_contents(self) -> list[TocEntry]: @@ -138,6 +142,7 @@ class BlogCollectionListPage(BaseContentMixin, BasePage): # type: ignore[misc] max_count = 1 content_panels = BasePage.content_panels + BaseContentMixin.content_panels + search_fields = BasePage.search_fields + BaseContentMixin.search_fields @cached_property def table_of_contents(self) -> list[TocEntry]: @@ -160,6 +165,7 @@ class BlogCollectionPage(BaseContentMixin, BasePage): # type: ignore[misc] subpage_types = [BlogPostPage] content_panels = BasePage.content_panels + BaseContentMixin.content_panels + search_fields = BasePage.search_fields + BaseContentMixin.search_fields @cached_property def table_of_contents(self) -> list[TocEntry]: diff --git a/website/common/models.py b/website/common/models.py index 52dd911..750534a 100644 --- a/website/common/models.py +++ b/website/common/models.py @@ -54,6 +54,11 @@ class BaseContentMixin(models.Model): FieldPanel("body"), ] + search_fields = [ + index.SearchField("body"), + index.SearchField("subtitle"), + ] + class Meta: abstract = True @@ -100,10 +105,12 @@ class BaseContentMixin(models.Model): class ContentPage(BasePage, BaseContentMixin): # type: ignore[misc] subpage_types: list[Any] = [] content_panels = BasePage.content_panels + BaseContentMixin.content_panels + search_fields = BasePage.search_fields + BaseContentMixin.search_fields class ListingPage(BasePage, BaseContentMixin): # type: ignore[misc] content_panels = BasePage.content_panels + BaseContentMixin.content_panels + search_fields = BasePage.search_fields + BaseContentMixin.search_fields def get_context(self, request: HttpRequest) -> dict: context = super().get_context(request) diff --git a/website/contact/models.py b/website/contact/models.py index 0540092..9f715f4 100644 --- a/website/contact/models.py +++ b/website/contact/models.py @@ -40,6 +40,7 @@ class ContactPage(BaseContentMixin, BasePage): # type: ignore[misc] max_count = 1 subpage_types: list = [] content_panels = BasePage.content_panels + BaseContentMixin.content_panels + search_fields = BasePage.search_fields + BaseContentMixin.search_fields @cached_property def reading_time(self) -> int: diff --git a/website/search/models.py b/website/search/models.py index 9b8bb2a..8cf2a0a 100644 --- a/website/search/models.py +++ b/website/search/models.py @@ -15,6 +15,7 @@ class SearchPage(BaseContentMixin, BasePage): # type: ignore[misc] subpage_types: list = [] parent_page_types = ["home.HomePage"] content_panels = BasePage.content_panels + BaseContentMixin.content_panels + search_fields = BasePage.search_fields + BaseContentMixin.search_fields @cached_property def reading_time(self) -> int: