Initial commit
This commit is contained in:
32
env/lib/python3.10/site-packages/wagtail/search/checks.py
vendored
Normal file
32
env/lib/python3.10/site-packages/wagtail/search/checks.py
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
from django.core.checks import Warning, register
|
||||
|
||||
|
||||
@register("search")
|
||||
def page_search_fields_check(app_configs, **kwargs):
|
||||
"""Checks each page model with search_fields to core fields are included"""
|
||||
from wagtail.models import Page, get_page_models
|
||||
|
||||
page_models = get_page_models()
|
||||
errors = []
|
||||
|
||||
for cls in page_models:
|
||||
# Don't check models where indexing has been explicitly disabled
|
||||
if not cls.search_fields:
|
||||
continue
|
||||
# Only checks an initial subset of fields as only need to check some are missing to show the warning
|
||||
if not all(field in cls.search_fields for field in Page.search_fields[:10]):
|
||||
errors.append(
|
||||
Warning(
|
||||
"Core Page fields missing in `search_fields`",
|
||||
hint=" ".join(
|
||||
[
|
||||
"Ensure that {} extends the Page model search fields",
|
||||
"`search_fields = Page.search_fields + [...]`",
|
||||
]
|
||||
).format(cls.__name__),
|
||||
obj=cls,
|
||||
id="wagtailsearch.W001",
|
||||
)
|
||||
)
|
||||
|
||||
return errors
|
||||
Reference in New Issue
Block a user