v5.0.0 release notes

Note: 5.0.0 is identical to the 5.0.0b1 beta released a few weeks prior. Support for Wagtail’s new block previews will be coming in a later release due to time needed to update the hundreds of Bootstrap blocks CRX provides.

New features

  • Support Wagtail 6.4.

  • Support Python 3.9 to 3.13.

  • NEW: SEO preview on each page. Read more on our blog post SEO Previews in Wagtail.

  • NEW: spam protection with Google reCAPTCHA v2 and v3 on forms. See: Spam Protection

Maintenance

  • wagtail_flexible_forms module has been split out into its own package. No action is required. See wagtail-flexible-forms.

  • Large cleanup of deprecated code. See upgrade considerations below.

Upgrade considerations

In addition to the changes below, be sure to read the Wagtail 6.4 upgrade considerations.

SEO fields have moved

Structured data about the organization was previously available on every page (under the SEO tab in the page editor). Now, organization data has been moved into the site settings under Settings > SEO.

For most sites, no action is required, as the organization data is automatically copied from each site’s Home Page to these settings.

However, if you were previously using custom organization data on many separate pages, you’ll need to follow the wagtail-seo 3 upgrade instructions

Form template has changed

If you have any custom form page templates, they will need updated. Form page template and miniview templates have changed to support new reCAPTCHA fields.

  • Form ID changed to: <form id={{ page.get_form_id }}>.

  • Removed {% block captcha %} and form_honeypot.html.

  • Replace submit button with {% include "coderedcms/includes/form_button.html" %}.

See diff below:

 {{ block.super }}
 {% if page.form_live %}
 <div class="container my-5">
-  <form class="{{ page.form_css_class }}" id="{{ page.form_id }}" action="{% pageurl self %}" method="POST" {% if form|is_file_form %}enctype="multipart/form-data"{% endif %}>
+  <form class="{{ page.form_css_class }}" id="{{ page.get_form_id }}" action="{% pageurl self %}" method="POST" {% if form|is_file_form %}enctype="multipart/form-data"{% endif %}>
     {% csrf_token %}
     {% bootstrap_form form layout="horizontal" %}
-
-    {% block captcha %}
-    {% if page.spam_protection %}
-    {% include "coderedcms/includes/form_honeypot.html" %}
-    {% endif %}
-    {% endblock %}
-
     <div class="row">
       <div class="{{'horizontal_label_class'|bootstrap_settings}}"></div>
       <div class="{{'horizontal_field_class'|bootstrap_settings}}">
-        <button type="submit" class="btn {{page.button_size}} {{page.button_style}} {{page.button_css_class}}">
-          {{ page.button_text }}
-        </button>
+        {% include "coderedcms/includes/form_button.html" %}
       </div>
     </div>
   </form>

show_* options removed from Pages and Blocks

For most sites, no action is required as these have been deprecated and replaced by miniview templates back in version 2.1.

However, if you have any custom code using these deprecated fields or templates, replace them with custom miniview templates on relevant page models instead.

  • PagePreviewBlock fields removed:

    • show_previews

  • CoderedArticleIndexPage fields removed:

    • show_images

    • show_captions

    • show_meta

    • show_preview_text

  • Template options (in block Advanced Settings) have been removed from PageListBlock and PagePreviewBlock.

  • If you have CRX_FRONTEND_TEMPLATES_BLOCKS in your Django settings, remove the pagelistblock and pagepreviewblock entries from that dictionary.

  • Corresponding pagelist_*.html and pagepreview_*.html templates have been removed from the project.

Migrations

After upgrading, be sure to generate and apply new migrations as so:

$ python manage.py makemigrations
$ python manage.py migrate

Thank you!

Thanks to everyone who contributed to 5.0.0 on GitHub.