- Phase out special-purpose panel types (
StreamFieldPanel
,RichTextFieldPanel
,ImageChooserPanel
,DocumentChooserPanel
,PageChooserPanel
,SnippetChooserPanel
) in favour ofFieldPanel
(Matt Westcott) - Implement splitting of rich text blocks within StreamField (Jacob Topp-Mugglestone)
- Add support for image rendition prefetching (Andy Babic)
- Upgrade ESLint and Stylelint configurations to latest shared Wagtail configs (Thibaud Colas, Paarth Agarwal)
- Major updates to frontend tooling; move Node tooling from Gulp to Webpack, upgrade to Node v16 and npm v8, eslint v8, stylelint v14 and others (Thibaud Colas)
- Change comment headers’ date formatting to use browser APIs instead of requiring a library (LB (Ben Johnston))
- Lint with flake8-comprehensions and flake8-assertive, including adding a pre-commit hook for these (Mads Jensen, Dan Braghis)
- Switch the Wagtail branding font to a system font stack (Steven Steinwand, Paarth Agarwal)
- Add black configuration and reformat code using it (Dan Braghis)
- Remove UI code for legacy browser support: polyfills, IE11 workarounds, Modernizr (Thibaud Colas)
- Remove redirect auto-creation recipe from documentation as this feature is now supported in Wagtail core (Andy Babic)
- Remove IE11 warnings (Gianluca De Cola)
- Remove the legacy Hallo rich text editor as it has moved to an external package (LB (Ben Johnston))
- Increase the size of checkboxes throughout the UI, and simplify their alignment (Steven Steinwand)
- Adopt MyST for parsing documentation written in Markdown, replaces recommonmark (LB (Ben Johnston), Thibaud Colas)
- Installing docs extras requirements in CircleCI so issues with the docs requirements are picked up earlier (Thibaud Colas)
- Remove core usage of jinjalint and migrate to curlylint to resolve dependency incompatibility issues (Thibaud Colas)
- Switch focus outlines implementation to
:focus-visible
for cross-browser consistency (Paarth Agarwal) - Remove most uppercased text styles from admin UI (Paarth Agarwal)
- Convert all UI code to CSS logical properties for Right-to-Left (RTL) language support (Thibaud Colas)
- Migrate multiple documentation pages from RST to MD - including the editor's guide (Vibhakar Solanki, LB (Ben Johnston), Shwet Khatri)
- Add documentation for defining custom form validation on models used in Wagtail's
modelAdmin
(Serafeim Papastefanos) - Update
README.md
logo to work for GitHub dark mode (Paarth Agarwal) - Avoid an unnecessary page reload when pressing enter within the header search bar (Images, Pages, Documents) (Riley de Mestre)
- Removed unofficial length parameter on
If-Modified-Since
header insendfile_streaming_backend
which was only used by IE (Mariusz Felisiak) - Add Pinterest support to the list of default oEmbed providers (Dharmik Gangani)
- Update Jinja2 template support for Jinja2 3.x (Seb Brown)
- Add ability for
StreamField
to useJSONField
to store data, rather thanTextField
(Sage Abdullah) - Replace
content_json
TextField
withcontent
JSONField
inPageRevision
(Sage Abdullah) - Remove
replace_text
management command (Sage Abdullah) - Replace
data_json
TextField
withdata
JSONField
inBaseLogEntry
(Sage Abdullah) - Split up linting / formatting tasks in Makefile into client and server components (Hitansh Shah)
- Add support for embedding Instagram reels (Luis Nell)
- Use Django’s JavaScript catalog feature to manage translatable strings in JavaScript (Karl Hobley)
- Add a
page_description
to the Page model, to provide help text for a given page type (Kalob Taulien, Thibaud Colas, Matt Westcott, Stefan Hammer) - Add
trimmed
attribute to all blocktrans tags, so spacing is more reliable in translated strings (Harris Lapiroff) - Add documentation that describes how to use
ModelAdmin
to manageTag
s (Abdulmajeed Isa) - Rename the setting
BASE_URL
(undocumented) toWAGTAILADMIN_BASE_URL
and add to documentation,BASE_URL
will be removed in a future release (Sandil Ranasinghe) - Validate to and from email addresses within form builder pages when using
AbstractEmailForm
(Jake Howard) - Add
WAGTAILIMAGES_RENDITION_STORAGE
setting to allow an alternative image rendition storage (Heather White) - Add
wagtail_update_image_renditions
management command to regenerate image renditions or purge all existing renditions (Hitansh Shah, Onno Timmerman, Damian Moore) - Fully remove the legacy sidebar, with slim sidebar replacing it for all users (Thibaud Colas)
- Add support for adding custom attributes for link menu items in the slim sidebar (Thibaud Colas)
- Implement new slim page editor header with breadcrumb (Steven Steinwand, Karl Hobley)
- Add the ability for choices to be separated by new lines instead of just commas within the form builder, commas will still be supported if used (Abdulmajeed Isa)
- Add internationalisation UI to modeladmin (Andrés Martano)
- Support chunking in
PageQuerySet.specific()
to reduce memory consumption (Andy Babic) - Implement new tabs design across the admin interface (Steven Steinwand)
- Move page meta information from the header to a new status side panel component inside of the page editing UI (Steven Steinwand, Karl Hobley)
- Add useful help text to Tag fields to advise what content is allowed inside tags, including when
TAG_SPACES_ALLOWED
isTrue
orFalse
(Abdulmajeed Isa) - Change
AbstractFormSubmission
'sform_data
to use JSONField to store form submissions (Jake Howard) - Add image duplicate detection on upload (Tidiane Dia, with sponsorship from The Motley Fool)
- Add a system font stack for monospace fonts (Rishank Kanaparti)
- Fix: When using
simple_translations
ensure that the user is redirected to the page edit view when submitting for a single locale (Mitchel Cabuloy) - Fix: When previewing unsaved changes to
Form
pages, ensure that all added fields are correctly shown in the preview (Joshua Munn) - Fix: When Documents (e.g. PDFs) have been configured to be served inline via
WAGTAILDOCS_CONTENT_TYPES
&WAGTAILDOCS_INLINE_CONTENT_TYPES
ensure that the filename is correctly set in theContent-Disposition
header so that saving the files will use the correct filename (John-Scott Atlakson) - Fix: Improve the contrast of the “Remember me” checkbox against the login page’s background (Steven Steinwand)
- Fix: Group permission rows with custom permissions no longer have extra padding (Steven Steinwand)
- Fix: Make sure the focus outline of checkboxes is fully around the outer border (Steven Steinwand)
- Fix: Consistently set
aria-haspopup="menu"
for all sidebar menu items that have sub-menus (LB (Ben Johnston)) - Fix: Make sure
aria-expanded
is always explicitly set as a string in sidebar (LB (Ben Johnston)) - Fix: Use a button element instead of a link for page explorer menu item, for the correct semantics and behavior (LB (Ben Johnston))
- Fix: Make sure the “Title” column label can be translated in the page chooser and page move UI (Stephanie Cheng Smith)
- Fix: Remove redundant
role="main"
attributes on<main>
elements causing HTML validation issues (Luis Espinoza) - Fix: Allow bulk publishing of pages without revisions (Andy Chosak)
- Fix: Stop skipping heading levels in Wagtail welcome page (Jesse Menn)
- Fix: Add missing
lang
attributes to<html>
elements (James Ray) - Fix: Avoid 503 server error when entering tags over 100chars and instead show a user facing validation error (Vu Pham, Khanh Hoang)
- Fix: Ensure
thumb_col_header_text
is correctly used byThumbnailMixin
withinModelAdmin
as the column header label (Kyle J. Roux) - Fix: Page copy in Wagtail admin ignores
exclude_fields_in_copy
(John-Scott Atlakson) - Fix: Translation key
IntegrityError
when publishing pages with translatableOrderable
s that were copied without being published (Kalob Taulien, Dan Braghis) - Fix: Ignore
GenericRelation
when copying pages (John-Scott Atlakson) - Fix: Implement ARIA tabs markup and keyboards interactions for admin tabs (Steven Steinwand)
- Fix: Ensure
wagtail updatemodulepaths
works when system locale is not UTF-8 (Matt Westcott) - Fix: Re-establish focus trap for Pages explorer in slim sidebar (Thibaud Colas)
- Fix: Ensure the icon font loads correctly when
STATIC_URL
is not"/static/"
(Jacob Topp-Mugglestone)