2
0
Эх сурвалжийг харах

Set up wagtail-editable-help

Matt Westcott 2 жил өмнө
parent
commit
f1984055ae

+ 108 - 0
bakerydemo/base/migrations/0009_auto_20220823_1659.py

@@ -0,0 +1,108 @@
+# Generated by Django 3.2.15 on 2022-08-23 16:59
+
+from django.db import migrations, models
+import django.db.models.deletion
+import wagtail.fields
+import wagtail_editable_help.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('wagtailcore', '0076_modellogentry_revision'),
+        ('wagtailimages', '0024_index_image_file_hash'),
+        ('base', '0008_use_json_field_for_body_streamfield'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='gallerypage',
+            name='collection',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Gallery page collection', default='Select the image collection for this gallery.'), limit_choices_to=models.Q(('name__in', ['Root']), _negated=True), null=True, on_delete=django.db.models.deletion.SET_NULL, to='wagtailcore.collection'),
+        ),
+        migrations.AlterField(
+            model_name='gallerypage',
+            name='image',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Hero image', default='Landscape mode only; horizontal width between 1000px and 3000px.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
+        ),
+        migrations.AlterField(
+            model_name='gallerypage',
+            name='introduction',
+            field=models.TextField(blank=True, help_text=wagtail_editable_help.models.HelpText('Gallery page introduction', default='Text to describe the page')),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='featured_section_1',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Home page featured section 1', default='First featured section for the homepage. Will display up to three child items.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.page', verbose_name='Featured section 1'),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='featured_section_1_title',
+            field=models.CharField(blank=True, help_text=wagtail_editable_help.models.HelpText('Home page featured section title 1', default='Title to display above the promo copy'), max_length=255),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='featured_section_2',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Home page featured section 2', default='Second featured section for the homepage. Will display up to three child items.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.page', verbose_name='Featured section 2'),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='featured_section_2_title',
+            field=models.CharField(blank=True, help_text=wagtail_editable_help.models.HelpText('Home page featured section title 2', default='Title to display above the promo copy'), max_length=255),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='featured_section_3',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Home page featured section 3', default='Third featured section for the homepage. Will display up to six child items.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.page', verbose_name='Featured section 3'),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='featured_section_3_title',
+            field=models.CharField(blank=True, help_text=wagtail_editable_help.models.HelpText('Home page featured section title 3', default='Title to display above the promo copy'), max_length=255),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='hero_cta',
+            field=models.CharField(help_text=wagtail_editable_help.models.HelpText('Home page hero CTA', default='Text to display on Call to Action'), max_length=255, verbose_name='Hero CTA'),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='hero_cta_link',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Home page CTA link', default='Choose a page to link to for the Call to Action'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.page', verbose_name='Hero CTA link'),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='hero_text',
+            field=models.CharField(help_text=wagtail_editable_help.models.HelpText('Home page hero text', default='Write an introduction for the bakery'), max_length=255),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='image',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Hero image', default='Landscape mode only; horizontal width between 1000px and 3000px.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='promo_image',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Home page promo image', default='Promo image'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='promo_text',
+            field=wagtail.fields.RichTextField(blank=True, help_text=wagtail_editable_help.models.HelpText('Home page promo text', default='Write some promotional copy'), null=True),
+        ),
+        migrations.AlterField(
+            model_name='homepage',
+            name='promo_title',
+            field=models.CharField(blank=True, help_text=wagtail_editable_help.models.HelpText('Home page promo title', default='Title to display above the promo copy'), max_length=255),
+        ),
+        migrations.AlterField(
+            model_name='standardpage',
+            name='image',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Hero image', default='Landscape mode only; horizontal width between 1000px and 3000px.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
+        ),
+        migrations.AlterField(
+            model_name='standardpage',
+            name='introduction',
+            field=models.TextField(blank=True, help_text=wagtail_editable_help.models.HelpText('Standard page introduction', default='Text to describe the page')),
+        ),
+    ]

+ 40 - 21
bakerydemo/base/models.py

@@ -10,6 +10,8 @@ from wagtail.models import Collection, Page
 from wagtail.search import index
 from wagtail.snippets.models import register_snippet
 
+from wagtail_editable_help.models import HelpText
+
 from .blocks import BaseStreamBlock
 
 
@@ -107,14 +109,17 @@ class StandardPage(Page):
     image, introduction and body field
     """
 
-    introduction = models.TextField(help_text="Text to describe the page", blank=True)
+    introduction = models.TextField(
+        help_text=HelpText("Standard page introduction", default="Text to describe the page"),
+        blank=True,
+    )
     image = models.ForeignKey(
         "wagtailimages.Image",
         null=True,
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Landscape mode only; horizontal width between 1000px and 3000px.",
+        help_text=HelpText("Hero image", default="Landscape mode only; horizontal width between 1000px and 3000px."),
     )
     body = StreamField(
         BaseStreamBlock(), verbose_name="Page body", blank=True, use_json_field=True
@@ -144,15 +149,16 @@ class HomePage(Page):
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Homepage image",
+        help_text=HelpText("Hero image", default="Landscape mode only; horizontal width between 1000px and 3000px."),
     )
     hero_text = models.CharField(
-        max_length=255, help_text="Write an introduction for the bakery"
+        max_length=255,
+        help_text=HelpText("Home page hero text", default="Write an introduction for the bakery"),
     )
     hero_cta = models.CharField(
         verbose_name="Hero CTA",
         max_length=255,
-        help_text="Text to display on Call to Action",
+        help_text=HelpText("Home page hero CTA", default="Text to display on Call to Action"),
     )
     hero_cta_link = models.ForeignKey(
         "wagtailcore.Page",
@@ -161,7 +167,7 @@ class HomePage(Page):
         on_delete=models.SET_NULL,
         related_name="+",
         verbose_name="Hero CTA link",
-        help_text="Choose a page to link to for the Call to Action",
+        help_text=HelpText("Home page CTA link", default="Choose a page to link to for the Call to Action"),
     )
 
     # Body section of the HomePage
@@ -179,13 +185,15 @@ class HomePage(Page):
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Promo image",
+        help_text=HelpText("Home page promo image", default="Promo image"),
     )
     promo_title = models.CharField(
-        blank=True, max_length=255, help_text="Title to display above the promo copy"
+        blank=True, max_length=255,
+        help_text=HelpText("Home page promo title", default="Title to display above the promo copy"),
     )
     promo_text = RichTextField(
-        null=True, blank=True, help_text="Write some promotional copy"
+        null=True, blank=True,
+        help_text=HelpText("Home page promo text", default="Write some promotional copy"),
     )
 
     # Featured sections on the HomePage
@@ -194,7 +202,8 @@ class HomePage(Page):
     # Each list their children items that we access via the children function
     # that we define on the individual Page models e.g. BlogIndexPage
     featured_section_1_title = models.CharField(
-        blank=True, max_length=255, help_text="Title to display above the promo copy"
+        blank=True, max_length=255,
+        help_text=HelpText("Home page featured section title 1", default="Title to display above the promo copy"),
     )
     featured_section_1 = models.ForeignKey(
         "wagtailcore.Page",
@@ -202,13 +211,16 @@ class HomePage(Page):
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="First featured section for the homepage. Will display up to "
-        "three child items.",
+        help_text=HelpText(
+            "Home page featured section 1",
+            default="First featured section for the homepage. Will display up to three child items."
+        ),
         verbose_name="Featured section 1",
     )
 
     featured_section_2_title = models.CharField(
-        blank=True, max_length=255, help_text="Title to display above the promo copy"
+        blank=True, max_length=255,
+        help_text=HelpText("Home page featured section title 2", default="Title to display above the promo copy"),
     )
     featured_section_2 = models.ForeignKey(
         "wagtailcore.Page",
@@ -216,13 +228,16 @@ class HomePage(Page):
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Second featured section for the homepage. Will display up to "
-        "three child items.",
+        help_text=HelpText(
+            "Home page featured section 2",
+            default="Second featured section for the homepage. Will display up to three child items."
+        ),
         verbose_name="Featured section 2",
     )
 
     featured_section_3_title = models.CharField(
-        blank=True, max_length=255, help_text="Title to display above the promo copy"
+        blank=True, max_length=255,
+        help_text=HelpText("Home page featured section title 3", default="Title to display above the promo copy"),
     )
     featured_section_3 = models.ForeignKey(
         "wagtailcore.Page",
@@ -230,8 +245,10 @@ class HomePage(Page):
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Third featured section for the homepage. Will display up to "
-        "six child items.",
+        help_text=HelpText(
+            "Home page featured section 3",
+            default="Third featured section for the homepage. Will display up to six child items."
+        ),
         verbose_name="Featured section 3",
     )
 
@@ -296,14 +313,16 @@ class GalleryPage(Page):
     and is intended to show the extensibility of this aspect of Wagtail
     """
 
-    introduction = models.TextField(help_text="Text to describe the page", blank=True)
+    introduction = models.TextField(
+        help_text=HelpText("Gallery page introduction", default="Text to describe the page"),
+        blank=True)
     image = models.ForeignKey(
         "wagtailimages.Image",
         null=True,
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Landscape mode only; horizontal width between 1000px and " "3000px.",
+        help_text=HelpText("Hero image", default="Landscape mode only; horizontal width between 1000px and 3000px."),
     )
     body = StreamField(
         BaseStreamBlock(), verbose_name="Page body", blank=True, use_json_field=True
@@ -314,7 +333,7 @@ class GalleryPage(Page):
         null=True,
         blank=True,
         on_delete=models.SET_NULL,
-        help_text="Select the image collection for this gallery.",
+        help_text=HelpText("Gallery page collection", default="Select the image collection for this gallery."),
     )
 
     content_panels = Page.content_panels + [

+ 36 - 0
bakerydemo/blog/migrations/0006_auto_20220823_1659.py

@@ -0,0 +1,36 @@
+# Generated by Django 3.2.15 on 2022-08-23 16:59
+
+from django.db import migrations, models
+import django.db.models.deletion
+import wagtail_editable_help.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('wagtailimages', '0024_index_image_file_hash'),
+        ('blog', '0005_use_json_field_for_body_streamfield'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='blogindexpage',
+            name='image',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Hero image', default='Landscape mode only; horizontal width between 1000px and 3000px.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
+        ),
+        migrations.AlterField(
+            model_name='blogindexpage',
+            name='introduction',
+            field=models.TextField(blank=True, help_text=wagtail_editable_help.models.HelpText('Blog index page introduction', default='Text to describe the page')),
+        ),
+        migrations.AlterField(
+            model_name='blogpage',
+            name='image',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Hero image', default='Landscape mode only; horizontal width between 1000px and 3000px.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
+        ),
+        migrations.AlterField(
+            model_name='blogpage',
+            name='introduction',
+            field=models.TextField(blank=True, help_text=wagtail_editable_help.models.HelpText('Blog page introduction', default='Text to describe the page')),
+        ),
+    ]

+ 12 - 4
bakerydemo/blog/models.py

@@ -12,6 +12,8 @@ from wagtail.fields import StreamField
 from wagtail.models import Orderable, Page
 from wagtail.search import index
 
+from wagtail_editable_help.models import HelpText
+
 from bakerydemo.base.blocks import BaseStreamBlock
 
 
@@ -54,14 +56,17 @@ class BlogPage(Page):
     https://docs.wagtail.org/en/stable/topics/pages.html#inline-models
     """
 
-    introduction = models.TextField(help_text="Text to describe the page", blank=True)
+    introduction = models.TextField(
+        help_text=HelpText("Blog page introduction", default="Text to describe the page"),
+        blank=True,
+    )
     image = models.ForeignKey(
         "wagtailimages.Image",
         null=True,
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Landscape mode only; horizontal width between 1000px and 3000px.",
+        help_text=HelpText("Hero image", default="Landscape mode only; horizontal width between 1000px and 3000px."),
     )
     body = StreamField(
         BaseStreamBlock(), verbose_name="Page body", blank=True, use_json_field=True
@@ -130,14 +135,17 @@ class BlogIndexPage(RoutablePageMixin, Page):
     defined above.
     """
 
-    introduction = models.TextField(help_text="Text to describe the page", blank=True)
+    introduction = models.TextField(
+        help_text=HelpText("Blog index page introduction", default="Text to describe the page"),
+        blank=True
+    )
     image = models.ForeignKey(
         "wagtailimages.Image",
         null=True,
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Landscape mode only; horizontal width between 1000px and 3000px.",
+        help_text=HelpText("Hero image", default="Landscape mode only; horizontal width between 1000px and 3000px."),
     )
 
     content_panels = Page.content_panels + [

+ 36 - 0
bakerydemo/breads/migrations/0005_auto_20220823_1659.py

@@ -0,0 +1,36 @@
+# Generated by Django 3.2.15 on 2022-08-23 16:59
+
+from django.db import migrations, models
+import django.db.models.deletion
+import wagtail_editable_help.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('wagtailimages', '0024_index_image_file_hash'),
+        ('breads', '0004_use_json_field_for_body_streamfield'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='breadpage',
+            name='image',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Hero image', default='Landscape mode only; horizontal width between 1000px and 3000px.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
+        ),
+        migrations.AlterField(
+            model_name='breadpage',
+            name='introduction',
+            field=models.TextField(blank=True, help_text=wagtail_editable_help.models.HelpText('Bread page introduction', default='Text to describe the page')),
+        ),
+        migrations.AlterField(
+            model_name='breadsindexpage',
+            name='image',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Hero image', default='Landscape mode only; horizontal width between 1000px and 3000px.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
+        ),
+        migrations.AlterField(
+            model_name='breadsindexpage',
+            name='introduction',
+            field=models.TextField(blank=True, help_text=wagtail_editable_help.models.HelpText('Breads index page introduction', default='Text to describe the page')),
+        ),
+    ]

+ 12 - 4
bakerydemo/breads/models.py

@@ -8,6 +8,8 @@ from wagtail.models import Page
 from wagtail.search import index
 from wagtail.snippets.models import register_snippet
 
+from wagtail_editable_help.models import HelpText
+
 from bakerydemo.base.blocks import BaseStreamBlock
 
 
@@ -84,14 +86,17 @@ class BreadPage(Page):
     Detail view for a specific bread
     """
 
-    introduction = models.TextField(help_text="Text to describe the page", blank=True)
+    introduction = models.TextField(
+        help_text=HelpText("Bread page introduction", default="Text to describe the page"),
+        blank=True
+    )
     image = models.ForeignKey(
         "wagtailimages.Image",
         null=True,
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Landscape mode only; horizontal width between 1000px and 3000px.",
+        help_text=HelpText("Hero image", default="Landscape mode only; horizontal width between 1000px and 3000px."),
     )
     body = StreamField(
         BaseStreamBlock(), verbose_name="Page body", blank=True, use_json_field=True
@@ -151,14 +156,17 @@ class BreadsIndexPage(Page):
     to be discrete functions to make it easier to follow
     """
 
-    introduction = models.TextField(help_text="Text to describe the page", blank=True)
+    introduction = models.TextField(
+        help_text=HelpText("Breads index page introduction", default="Text to describe the page"),
+        blank=True,
+    )
     image = models.ForeignKey(
         "wagtailimages.Image",
         null=True,
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Landscape mode only; horizontal width between 1000px and " "3000px.",
+        help_text=HelpText("Hero image", default="Landscape mode only; horizontal width between 1000px and 3000px."),
     )
 
     content_panels = Page.content_panels + [

+ 47 - 0
bakerydemo/locations/migrations/0006_auto_20220823_1659.py

@@ -0,0 +1,47 @@
+# Generated by Django 3.2.15 on 2022-08-23 16:59
+
+import django.core.validators
+from django.db import migrations, models
+import django.db.models.deletion
+import wagtail_editable_help.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('wagtailimages', '0024_index_image_file_hash'),
+        ('locations', '0005_use_json_field_for_body_streamfield'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='locationoperatinghours',
+            name='closed',
+            field=models.BooleanField(blank=True, help_text=wagtail_editable_help.models.HelpText('Operating hours closed', default='Tick if location is closed on this day'), verbose_name='Closed?'),
+        ),
+        migrations.AlterField(
+            model_name='locationpage',
+            name='image',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Hero image', default='Landscape mode only; horizontal width between 1000px and 3000px.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
+        ),
+        migrations.AlterField(
+            model_name='locationpage',
+            name='introduction',
+            field=models.TextField(blank=True, help_text=wagtail_editable_help.models.HelpText('Location page introduction', default='Text to describe the page')),
+        ),
+        migrations.AlterField(
+            model_name='locationpage',
+            name='lat_long',
+            field=models.CharField(help_text=wagtail_editable_help.models.HelpText('Location page lat/long', default="Comma separated lat/long. (Ex. 64.144367, -21.939182) Right click Google Maps and select 'What's Here'"), max_length=36, validators=[django.core.validators.RegexValidator(code='invalid_lat_long', message='Lat Long must be a comma-separated numeric lat and long', regex='^(\\-?\\d+(\\.\\d+)?),\\s*(\\-?\\d+(\\.\\d+)?)$')]),
+        ),
+        migrations.AlterField(
+            model_name='locationsindexpage',
+            name='image',
+            field=models.ForeignKey(blank=True, help_text=wagtail_editable_help.models.HelpText('Hero image', default='Landscape mode only; horizontal width between 1000px and 3000px.'), null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
+        ),
+        migrations.AlterField(
+            model_name='locationsindexpage',
+            name='introduction',
+            field=models.TextField(blank=True, help_text=wagtail_editable_help.models.HelpText('Locations index page introduction', default='Text to describe the page')),
+        ),
+    ]

+ 18 - 7
bakerydemo/locations/models.py

@@ -9,6 +9,8 @@ from wagtail.fields import StreamField
 from wagtail.models import Orderable, Page
 from wagtail.search import index
 
+from wagtail_editable_help.models import HelpText
+
 from bakerydemo.base.blocks import BaseStreamBlock
 from bakerydemo.locations.choices import DAY_CHOICES
 
@@ -22,7 +24,8 @@ class OperatingHours(models.Model):
     opening_time = models.TimeField(blank=True, null=True)
     closing_time = models.TimeField(blank=True, null=True)
     closed = models.BooleanField(
-        "Closed?", blank=True, help_text="Tick if location is closed on this day"
+        "Closed?", blank=True,
+        help_text=HelpText("Operating hours closed", default="Tick if location is closed on this day"),
     )
 
     panels = [
@@ -67,14 +70,17 @@ class LocationsIndexPage(Page):
     A Page model that creates an index page (a listview)
     """
 
-    introduction = models.TextField(help_text="Text to describe the page", blank=True)
+    introduction = models.TextField(
+        help_text=HelpText("Locations index page introduction", default="Text to describe the page"),
+        blank=True,
+    )
     image = models.ForeignKey(
         "wagtailimages.Image",
         null=True,
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Landscape mode only; horizontal width between 1000px and 3000px.",
+        help_text=HelpText("Hero image", default="Landscape mode only; horizontal width between 1000px and 3000px."),
     )
 
     # Only LocationPage objects can be added underneath this index page
@@ -107,14 +113,17 @@ class LocationPage(Page):
     Detail for a specific bakery location.
     """
 
-    introduction = models.TextField(help_text="Text to describe the page", blank=True)
+    introduction = models.TextField(
+        help_text=HelpText("Location page introduction", default="Text to describe the page"),
+        blank=True
+    )
     image = models.ForeignKey(
         "wagtailimages.Image",
         null=True,
         blank=True,
         on_delete=models.SET_NULL,
         related_name="+",
-        help_text="Landscape mode only; horizontal width between 1000px and 3000px.",
+        help_text=HelpText("Hero image", default="Landscape mode only; horizontal width between 1000px and 3000px."),
     )
     body = StreamField(
         BaseStreamBlock(), verbose_name="Page body", blank=True, use_json_field=True
@@ -122,8 +131,10 @@ class LocationPage(Page):
     address = models.TextField()
     lat_long = models.CharField(
         max_length=36,
-        help_text="Comma separated lat/long. (Ex. 64.144367, -21.939182) \
-                   Right click Google Maps and select 'What's Here'",
+        help_text=HelpText(
+            "Location page lat/long",
+            default="Comma separated lat/long. (Ex. 64.144367, -21.939182) Right click Google Maps and select 'What's Here'",
+        ),
         validators=[
             RegexValidator(
                 regex=r"^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$",

+ 1 - 0
bakerydemo/settings/base.py

@@ -62,6 +62,7 @@ INSTALLED_APPS = [
     "modelcluster",
     "taggit",
     "wagtailfontawesome",
+    "wagtail_editable_help",
     "debug_toolbar",
     "django.contrib.admin",
     "django.contrib.auth",

+ 1 - 0
requirements/base.txt

@@ -3,3 +3,4 @@ django-dotenv==1.4.1
 wagtail>=3.0,<4
 wagtailfontawesome>=1.1.3,<1.2
 django-debug-toolbar>=3.2,<4
+https://github.com/wagtail/wagtail-editable-help/zipball/main/