Back to Wagtail

Wagtail 7.4 (LTS) release notes

docs/releases/7.4.md

7.3.15.7 KB
Original Source

Wagtail 7.4 (LTS) release notes

Unreleased

{contents}
---
local:
depth: 1
---

Wagtail 7.4 is designated a Long Term Support (LTS) release. Long Term Support releases will continue to receive maintenance updates as necessary to address security and data-loss related issues, up until the next LTS release (typically a period of 12 months).

What's new

Autosave UX improvements

The autosave and concurrent editing notifications features have been improved based on user feedback. The improvements include: better handling of race conditions and network failures, refined messaging and alignment of indicator elements, as well as clearer display of idle users editing the same page.

These improvements were developed by Sage Abdullah, with support from the Wagtail UI team.

Deferred validation for StreamField blocks when saving drafts

StreamField blocks now support deferred validation of required fields when saving drafts of pages (or snippets using DraftStateMixin). Users can now add a StreamField block and save work-in-progress versions without filling in all fields of the block. Validation is applied as normal when the page or snippet is published, scheduled, or submitted to a workflow.

The new behavior is enabled by default, but individual field blocks can opt out by setting the required_on_save option to True. All blocks now also have an {attr}~wagtail.blocks.Block.is_deferred_validation attribute that can be used in custom validation logic to conditionally skip validation when saving drafts. For more details, refer to .

This feature was developed by Sage Abdullah.

Other features

  • Add is_deferred_validation flag to support skipping custom validation when saving drafts (Daniel Kirkham)
  • Update project template Dockerfile to build dependencies in a separate stage (Brylie Oxley, Akshat Gupta)
  • Add include_root parameter to admin pages API endpoint (Divyansh Mishra)
  • Add support for Flourish oEmbeds (Garrett Coakley)
  • Add support for Heyzine oEmbeds (Baptiste Darthenay)
  • Allow specifying creation_form_class on ChooserViewSet as a dotted path string (Adithya00012)

Bug fixes

  • Handle nested inline models when displaying object usage information (Sage Abdullah, Kacper Walęga, Tian Jie Wong)
  • Avoid duplicate get_object() DB query in API detail view (Siddheshwar Kadam)
  • Ensure ImageBlock alt text populates on choosing a new image after unchecking decorative state (Pratham Jaiswal)
  • Set verbose_name_plural for Query model in search promotions app (Saptami)
  • Truncate overly long task names in workflow admin view (Gaurav Takhi)
  • Hide "Add child page" button when no child pages can be created as per max_count or max_count_per_parent (Lasse Schmieding)
  • Use POST instead of DELETE in Cloudflare Frontend Cache Backend (Tom Usher)
  • Handle null values for title, author name or provider name in OEmbed responses (Baptiste Darthenay)

Documentation

  • Add documentation for the filter_spec parameter of ImageRenditionField (Soumya-codr)
  • Add guide for testing document upload forms (Wenli Tsai, Bhavesh Sharma)
  • Document the nested_default_fields attribute on API viewsets (Deepanshu Tevathiya)
  • Replace http with https in example URLs (Kunal Gupta)
  • Use pathlib.Path for settings in "Integrating into Django" documentation (Kunal Gupta)
  • Clarify example of how to implement custom embed finders (Naman Sharma S)
  • Add documentation for using the ReferenceIndex API (Saptami)
  • Retitle documentation page for settings contrib module to "Settings models" (Karl Hobley)
  • Fix typos and minor grammar issues (Kunal Gupta)
  • Correct references to macOS and POSIX shell in tutorial (Ankit Kumar)
  • Add PowerShell setup instructions to tutorial and correct method versus property terminology (Mustansir Dabhiya)

Maintenance

  • Removed support for Django 4.2
  • Fix LocaleController test failures caused by differing timezone representations between Node versions (Saptami, Matt Westcott)
  • Fix frontend coverage upload to Codecov (Sage Abdullah)
  • Update semgrep to 1.150.0 (Pravin Kamble)
  • Fix hash_filelike test case to account for line break differences on Windows (Mustansir Dabhiya)
  • Fix temporary file handling in redirect import tests on Windows (Mustansir Dabhiya)
  • Fix use of platform-specific date formatting in edit handler tests (Mustansir Dabhiya)
  • Bump Node.js to 24 (active LTS), upgrade Jest and Storybook (Sage Abdullah)
  • Use Docker Elasticsearch images for GitHub CI instead of unofficial actions (Matt Westcott)
  • Make LocaleController tests robust against changes to timezone data in Node (Sage Abdullah)
  • Fix PermissionError on document serve tests under Windows (Matt Westcott)
  • Update JavaScript linting to ESLint 9, with updated linting rules and related fixes (Sage Abdullah)
  • Replace Puppeteer with Playwright for integration tests (Sage Abdullah)
  • Upgrade to latest Sass with changes for deprecated if syntax (Sage Abdullah)
  • Add explicit timeout-minutes to GitHub Actions workflow jobs (Ashutosh)
  • Upgrade Python tooling, testing, and docs dependencies (Sage Abdullah)
  • Support skipping transaction unit tests with a tag (Sage Abdullah)
  • Remove unreachable code in wagtail.py (Oluwagbeminiyi Agbedejobi)

Upgrade considerations - changes affecting all projects

Upgrade considerations - deprecation of old functionality

Removed support for Django 4.2

Django 4.2 is no longer supported as of this release; please upgrade to Django 5.2 or above before upgrading Wagtail.

Upgrade considerations - changes affecting Wagtail customizations

Upgrade considerations - changes to undocumented internals