From 3843123e41114b7060b3d44f8d0dd329a51236e2 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Tue, 10 Feb 2015 16:50:32 +0000 Subject: [PATCH] Hooked blocks get_searchable_content into wagtailsearch --- wagtail/wagtailcore/fields.py | 3 +++ wagtail/wagtailsearch/index.py | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/wagtail/wagtailcore/fields.py b/wagtail/wagtailcore/fields.py index ede90dacd..d139a3683 100644 --- a/wagtail/wagtailcore/fields.py +++ b/wagtail/wagtailcore/fields.py @@ -82,3 +82,6 @@ class StreamField(with_metaclass(models.SubfieldBase, models.Field)): def value_to_string(self, obj): value = self._get_val_from_obj(obj) return self.get_prep_value(value) + + def get_searchable_content(self, value): + return self.stream_block.get_searchable_content(value) diff --git a/wagtail/wagtailsearch/index.py b/wagtail/wagtailsearch/index.py index bbe9dbf6a..fa2f317ce 100644 --- a/wagtail/wagtailsearch/index.py +++ b/wagtail/wagtailsearch/index.py @@ -116,7 +116,10 @@ class BaseField(object): def get_value(self, obj): try: field = self.get_field(obj.__class__) - return field._get_val_from_obj(obj) + value = field._get_val_from_obj(obj) + if hasattr(field, 'get_searchable_content'): + value = field.get_searchable_content(value) + return value except models.fields.FieldDoesNotExist: value = getattr(obj, self.field_name, None) if hasattr(value, '__call__'):