diff --git a/wagtail/admin/compare.py b/wagtail/admin/compare.py index 1b5fc9a57b..47624b24d7 100644 --- a/wagtail/admin/compare.py +++ b/wagtail/admin/compare.py @@ -1,6 +1,5 @@ import difflib -from bs4 import BeautifulSoup from django.core.exceptions import ImproperlyConfigured from django.db import models from django.utils.encoding import force_str @@ -13,11 +12,7 @@ from taggit.managers import TaggableManager from wagtail import blocks from wagtail.fields import RichTextField, StreamField from wagtail.utils.registry import ModelFieldRegistry - - -def text_from_html(val): - # Return the unescaped text content of an HTML string - return BeautifulSoup(force_str(val), "html5lib").getText() +from wagtail.utils.text import text_from_html comparison_class_registry = ModelFieldRegistry() diff --git a/wagtail/admin/panels/base.py b/wagtail/admin/panels/base.py index 9cfa7c5184..f4ddf8167d 100644 --- a/wagtail/admin/panels/base.py +++ b/wagtail/admin/panels/base.py @@ -1,7 +1,6 @@ from django.core.exceptions import ImproperlyConfigured from django.utils.safestring import mark_safe -from wagtail.admin.compare import text_from_html from wagtail.admin.forms.models import ( WagtailAdminDraftStateFormMixin, WagtailAdminModelForm, @@ -11,6 +10,7 @@ from wagtail.blocks import StreamValue from wagtail.coreutils import safe_snake_case from wagtail.models import DraftStateMixin from wagtail.rich_text import RichText +from wagtail.utils.text import text_from_html def get_form_for_model( diff --git a/wagtail/utils/text.py b/wagtail/utils/text.py new file mode 100644 index 0000000000..f219ecc5cc --- /dev/null +++ b/wagtail/utils/text.py @@ -0,0 +1,7 @@ +from bs4 import BeautifulSoup +from django.utils.encoding import force_str + + +def text_from_html(val): + # Return the unescaped text content of an HTML string + return BeautifulSoup(force_str(val), "html5lib").getText()