wagtail/docs/releases/6.0.md

9.5 KiB

Wagtail 6.0 release notes - IN DEVELOPMENT

Unreleased

---
local:
depth: 1
---

What's new

Django 5.0 support

This release adds support for Django 5.0. The support has also been backported to Wagtail 5.2 LTS.

Other features

  • Added search_index option to StreamField blocks to control whether the block is indexed for searching (Vedant Pandey)
  • Remember previous location on returning from page add/edit actions (Robert Rollins)
  • Update settings file in project settings to address Django 4.2 deprecations (Sage Abdullah)
  • Improve layout and accessibility of the image URL generator page, reduce reliance on JavaScript (Temidayo Azeez)
  • Allow UniqueConstraint in place of unique_together for {class}~wagtail.models.TranslatableMixin's system check (Temidayo Azeez, Sage Abdullah)
  • Make use of IndexView.get_add_url() in snippets index view template (Christer Jensen, Sage Abdullah)
  • Allow Page.permissions_for_user() to be overridden by specific page types (Sébastien Corbin)
  • Improve visual alignment of explore icon in Page listings for longer content (Krzysztof Jeziorny)
  • Add extra_actions blocks to Snippets and generic index templates (Bhuvnesh Sharma)
  • Added page types usage report (Jhonatan Lopes)
  • Add support for defining panels / edit_handler on ModelViewSet (Sage Abdullah)
  • Use a single instance of PagePermissionPolicy in wagtail.permissions module (Sage Abdullah)
  • Add max tag length validation for multiple uploads (documents/images) (Temidayo Azeez)
  • Ensure expanded side panel does not overlap form content for most viewports (Chiemezuo Akujobi)
  • Add ability to modify the default ordering for the page explorer view (Shlomo Markowitz)

Bug fixes

  • Update system check for overwriting storage backends to recognise the STORAGES setting introduced in Django 4.2 (phijma-leukeleu)
  • Prevent password change form from raising a validation error when browser autocomplete fills in the "Old password" field (Chiemezuo Akujobi)
  • Ensure that the legacy dropdown options, when closed, do not get accidentally clicked by other interactions wide viewports (CheesyPhoenix, Christer Jensen)
  • Add a fallback background for the editing preview iframe for sites without a background (Ian Price)
  • Preserve whitespace in rendered comments (Elhussein Almasri)
  • Remove search logging from project template so that new projects without the search promotions module will not error (Matt Westcott)
  • Ensure text only email notifications for updated comments do not escape HTML characters (Rohit Sharma)
  • Use the latest draft when copying an unpublished page for translation (Andrey Nehaychik)
  • Make Workflow and Aging Pages reports only available to users with page-related permissions (Rohit Sharma)
  • Make searching on specific fields work correctly on Elasticsearch when boost is in use (Matt Westcott)
  • Use a visible border and background color to highlight active formatting in the rich text toolbar (Cassidy Pittman)
  • Ensure image focal point box can be removed (Gunnar Scherf)
  • Ensure that Snippets search results correctly use the index_results.html or index_results_template_name override on initial load (Stefan Hammer)
  • Avoid error when attempting to moderate a page drafted by a now deleted user (Dan Braghis)
  • Do not show multiple error messages when editing a Site to use existing hostname and port (Rohit Sharma)
  • Avoid error when exporting Aging Pages report where a page has an empty last_published_by_user (Chiemezuo Akujobi)
  • Ensure Page querysets support using alias and specific (Tomasz Knapik)
  • Ensure workflow dashboard panels work when the page/snippet is missing (Sage Abdullah)

Documentation

  • Document, for contributors, the use of translate string literals passed as arguments to tags and filters using _() within templates (Chiemezuo Akujobi)
  • Document all features for the Documents app in one location, see (Neeraj Yetheendran)
  • Add section to testing docs about creating pages and working with page content (Mariana Bedran Lesche)
  • Add more nuance to the database recommendations in (Jadesola Kareem)

Maintenance

  • Update BeautifulSoup upper bound to 4.12.x (scott-8)
  • Migrate initialization of classes (such as body.ready) from multiple JavaScript implementations to one Stimulus controller w-init (Chiemezuo Akujobi)
  • Adopt the usage of of translate string literals using arg=_('...') in all wagtailadmin module templates (Chiemezuo Akujobi)
  • Migrate the contrib styleguide index view to a class-based view (Chiemezuo Akujobi)
  • Update djhtml to 3.0.6 (Matt Westcott)
  • Migrate the contrib settings edit view to a class-based view (Chiemezuo Akujobi, Sage Abdullah)
  • Remove django-pattern-library upper bound in testing dependencies (Sage Abdullah)
  • Split up functions in Elasticsearch backend for easier extensibility (Marcel Kornblum, Cameron Lamb, Sam Dudley)
  • Relax draftjs_exporter dependency to allow using version 5.x (Sylvain Fankhauser)
  • Refine styling of listings, account settings panels and the block chooser (Meli Imelda)
  • Remove icon font support (Matt Westcott)
  • Remove deprecated SVG icons (Matt Westcott)
  • Remove icon font styles (Thibaud Colas)
  • Migrate account editing view to a class-based view (Kehinde Bobade)
  • Upgrade frontend tooling to use Node 20 (LB (Ben) Johnston)
  • Upgrade ruff and replace black with ruff format (John-Scott Atlakson)
  • Update Willow upper bound to 2.x (Dan Braghis)

Upgrade considerations - removal of deprecated features from Wagtail 4.2 - 5.1

Features previously deprecated in Wagtail 4.2, 5.0 and 5.1 have been fully removed. For additional details on these changes, see:

The most significant changes are highlighted below.

Removal of ModelAdmin app

The wagtail.contrib.modeladmin app has been removed. If you wish to continue using it, it is available as the external package wagtail-modeladmin.

Support for Elasticsearch 5 and 6 dropped

The Elasticsearch 5 and 6 backends have been removed. If you are using one of these backends, you will need to upgrade to Elasticsearch 7 or 8 before upgrading to Wagtail 6.0.

StreamField no longer requires use_json_field=True

The use_json_field argument to StreamField is no longer required, and can be removed. StreamField now consistently uses JSONField for its database representation, and Wagtail 5.0 required older TextField-based streams to be migrated. As such, use_json_field no longer has any effect.

Other removals

  • The WAGTAILADMIN_GLOBAL_PAGE_EDIT_LOCK setting is no longer recognised and should be replaced with WAGTAILADMIN_GLOBAL_EDIT_LOCK.
  • The Query model is no longer part of the wagtail.search module; it can now be found in the optional wagtail.contrib.search_promotions app.
  • The wagtail.models.UserPagePermissionsProxy class and get_pages_with_direct_explore_permission, get_explorable_root_page and users_with_page_permission functions have been removed; equivalent functionality exists in the wagtail.permission_policies.pages.PagePermissionPolicy class.
  • The permission_type field of the GroupPagePermission model has been removed; the permission field (a foreign key to Django's Permission model) should be used instead.
  • The legacy moderation system used prior to the introduction of workflows in Wagtail 2.10 has been removed. Any moderation requests still in the queue from before this time will be lost.
  • The Wagtail icon font has been removed; any direct usage of this needs to be converted to SVG icons.
  • Various unused icons deprecated in Wagtail 5.0 have been removed.
  • The partial_match argument on SearchField and on search methods has been removed. AutocompleteField and the autocomplete method should be used instead.
  • The insert_editor_css hook has been removed; the insert_global_admin_css hook should be used instead.
  • The wagtail.contrib.frontend_cache module now supports azure-mgmt-cdn version 10 and azure-mgmt-frontdoor version 1 as its minimum supported versions.
  • The Task.page_locked_for_user method has been removed; Task.locked_for_user should be used instead.
  • The {% icon %} template tag no longer accepts class_name as an argument; classname should be used instead.
  • The wagtail.tests.utils module has been removed and can now be found at wagtail.test.utils.
  • The template wagtailadmin/shared/field_as_li.html has been removed, and should be replaced with wagtailadmin/shared/field.html enclosed in an <li> tag.
  • The custom client-side events wagtail:show and wagtail:hide on showing and hiding dialogs have been removed; w-dialog:show and w-dialog:hide should be used instead.
  • The global Javascript definitions headerSearch, initTagField, cancelSpinner and unicodeSlugsEnabled have been removed; these should be replaced with Stimulus controllers.

Upgrade considerations - changes affecting all projects

Upgrade considerations - deprecation of old functionality

Removed support for Django < 4.2

Django versions prior to 4.2 are no longer supported as of this release; please upgrade to Django 4.2 or above before upgrading Wagtail.

Upgrade considerations - changes affecting Wagtail customisations

Upgrade considerations - changes to undocumented internals