wagtail-cookiecutter-foundation icon indicating copy to clipboard operation
wagtail-cookiecutter-foundation copied to clipboard

Update wagtail to 6.1

Open pyup-bot opened this issue 9 months ago • 0 comments

This PR updates wagtail from 2.16.1 to 6.1.

Changelog

6.1

~~~~~~~~~~~~~~~~

* Refine wording of page & collection privacy using password is a shared password and should not be used for secure content (Rohit Sharma, Jake Howard)
* Add RelatedObjectsColumn to the table UI framework (Matt Westcott)
* Reduce memory usage when rebuilding search indexes (Jake Howard)
* Support creating images in .ico format (Jake Howard)
* Add the ability to disable the usage of a shared password for enhanced security for the private pages and collections (documents) feature (Salvo Polizzi, Jake Howard)
* Add system checks to ensure that `WAGTAIL_DATE_FORMAT`, `WAGTAIL_DATETIME_FORMAT`, `WAGTAIL_TIME_FORMAT` are correctly configured (Rohit Sharma, Coen van der Kamp)
* Allow custom permissions with the same prefix as built-in permissions (Sage Abdullah)
* Allow displaying permissions linked to the Admin model's content type (Sage Abdullah)
* Add support for Draftail's JavaScript to use chooserUrls provided by entity options & for the Draftail widget to encode lazy URLs/ translations (Elhussein Almasri)
* Reimplement search promotions `IndexView` using the `generic.IndexView` (Rohit Sharma, Sage Abdullah, Storm Heg)
* Reimplement redirects `IndexView` using the `generic.IndexView` (Rohit Sharma, Sage Abdullah, Temidayo Azeez)
* Add `PageListingViewSet` for custom per-page-type page listings (Matt Westcott)
* Add `ChooseParentView` to `PageListingViewSet` to allow creating pages from custom page listings (Abdelrahman Hamada, Sage Abdullah)
* Implement new universal listings design for image listing view (Sage Abdullah)
* Implement new universal listings design for document listing view (Sage Abdullah)
* Implement new universal listings design for site and locale listing views (Sage Abdullah)
* Implement new universal listings design for page and snippet history view (Sage Abdullah)
* Implement new universal listings design for form builder submissions view (Sage Abdullah)
* Implement new universal listings design for collections listing view (Sage Abdullah)
* Implement new universal listings design for groups views (Sage Abdullah)
* Implement new universal listings design for users views (Sage Abdullah)
* Implement new universal listings design for workflow and task views (Sage Abdullah)
* Refine slim header button style to match designs (Sage Abdullah)
* Add simple admin keyboard shortcuts overview dialog, available in the help sub-menu (Karthik Ayangar, Rohit Sharma)
* Add ability to bulk toggle permissions in the user group editing view, including shift+click for multiple selections (LB (Ben) Johnston, Kalob Taulien)
* Update the minimum version of `djangorestframework` to 3.15.1 (Sage Abdullah)
* Add support for related fields in generic `IndexView.list_display` (Abdelrahman Hamada)
* Improve page fetching logic and cache route results per request (Gordon Pendleton)
* Optimise rewriting of links / embeds in rich text using bulk database lookups (Andy Chosak)
* Add normalization mechanism to StreamField so that assignments and defaults can be passed in a wider range of data types (Joshua Munn, Matt Westcott)
* Allow specifying a `STORAGES` alias name for `WAGTAILIMAGES_RENDITION_STORAGE` (Alec Baron)
* Update `PASSWORD_REQUIRED_TEMPLATE` setting to `WAGTAIL_PASSWORD_REQUIRED_TEMPLATE` with deprecation of previous naming (Saksham Misra, LB (Ben) Johnston)
* Update `DOCUMENT_PASSWORD_REQUIRED_TEMPLATE` setting to `WAGTAILDOCS_PASSWORD_REQUIRED_TEMPLATE` with deprecation of previous naming (Saksham Misra, LB (Ben) Johnston)
* When editing settings (contrib) use the same icon in the editing view that was declared when registering the setting (Vince Salvino, Rohit Sharma)
* Populate django-treebeard cache during page routing to improve performance of `get_parent` (Nigel van Keulen)
* Add a new user profile preference to configure user interface information density (Thibaud Colas)
* Add additional field types to Elasticsearch mapping (scott-8)
* Fix: CVE-2024-32882: Permission check bypass when editing a model with per-field restrictions through `wagtail.contrib.settings` or `ModelViewSet` (Ben Morse, Joshua Munn, Jake Howard, Sage Abdullah)
* Fix: Fix typo in `__str__` for MySQL search index (Jake Howard)
* Fix: Ensure that unit tests correctly check for migrations in all core Wagtail apps (Matt Westcott)
* Fix: Correctly handle `date` objects on `human_readable_date` template tag (Jhonatan Lopes)
* Fix: Ensure re-ordering buttons work correctly when using a nested InlinePanel (Adrien Hamraoui)
* Fix: Consistently remove model's `verbose_name` in group edit view when listing custom permissions (Sage Abdullah, Neeraj Yetheendran, Omkar Jadhav)
* Fix: Resolve issue local development of docs when running `make livehtml` (Sage Abdullah)
* Fix: Resolve issue with unwanted padding in chooser modal listings (Sage Abdullah)
* Fix: Ensure form builder emails that have date or datetime fields correctly localize dates based on the configured `LANGUAGE_CODE` (Mark Niehues)
* Fix: Ensure the Stimulus `UnsavedController` checks for nested removal/additions of inputs so that the unsaved warning shows in more valid cases when editing a page (Karthik Ayangar)
* Fix: Ensure `get_add_url()` is always used to re-render the add button when the listing is refreshed in viewsets (Sage Abdullah)
* Fix: Ensure dropdown content cannot get higher than the viewport and add scrolling within content if needed (Chiemezuo Akujobi)
* Fix: Prevent snippets model index view from crashing when a model does not have an `objects` manager (Jhonatan Lopes)
* Fix: Fix `get_dummy_request`'s resulting host name when running tests with `ALLOWED_HOSTS = ["*"]` (David Buxton)
* Fix: Fix timezone handling in the `timesince_last_update` template tag (Matt Westcott)
* Fix: Fix Postgres phrase search to respect the language set in settings (Ihar Marhitych)
* Fix: Retain query parameters when switching between locales in the page chooser (Abdelrahman Hamada, Sage Abdullah)
* Fix: Add `w-kbd-scope-value` with support for `global` so that specific keyboard shortcuts (e.g. ctrl+s/cmd+s) trigger consistently even when focused on fields (Neeraj Yetheendran)
* Fix: Improve exception handling when generating image renditions concurrently (Andy Babic)
* Fix: Respect `WAGTAIL_ALLOW_UNICODE_SLUGS` setting when auto-generating slugs (LB (Ben) Johnston)
* Fix: Use correct URL when redirecting back to page search results after an AJAX search (Sage Abdullah)
* Fix: Reinstate missing static files in style guide (Sage Abdullah)
* Fix: Provide `convert_mariadb_uuids` management command to assist with upgrading to Django 5.0+ on MariaDB (Matt Westcott)
* Docs: Add contributing development documentation on how to work with a fork of Wagtail (Nix Asteri, Dan Braghis)
* Docs: Make sure the settings panel is listed in tabbed interface examples (Tibor Leupold)
* Docs: Update content and page names to their US spelling instead of UK spelling (Victoria Poromon)
* Docs: Update broken and incorrect links throughout the documentation (EK303)
* Docs: Fix formatting of `--purge-only` in `wagtail_update_image_renditions` management command section (Pranith Beeram)
* Docs: Update template components documentation to better explain the usage of the Laces library (Tibor Leupold)
* Docs: Update Sphinx theme to `6.3.0` with a fix for the missing favicon (Sage Abdullah)
* Docs: Document risk of XSS attacks on document upload (Matt Westcott, with thanks to Georgios Roumeliotis of TwelveSec for the original report)
* Docs: Add clarity to how custom StreamField validation works (Tibor Leupold)
* Docs: Add additional reference to the `wagtail_update_image_renditions` management command on the using images page (LB (Ben) Johnston)
* Docs: Correct information about line endings in Window development docs (Sage Abdullah)
* Docs: Improve code snippets for "Create a footer for all pages" tutorial section (Drikus Roor)
* Docs: Update list of third-party tutorials (LB (Ben) Johnston)
* Docs: Update "Integrating into Django" documentation to emphasise creating page models (Matt Westcott)
* Maintenance: Move RichText HTML whitelist parser to use the faster, built in `html.parser` (Jake Howard)
* Maintenance: Remove duplicate 'path' in default_exclude_fields_in_copy (Ramchandra Shahi Thakuri)
* Maintenance: Update unit tests to always use the faster, built in `html.parser` & remove `html5lib` dependency (Jake Howard)
* Maintenance: Adjust Eslint rules for TypeScript files (Karthik Ayangar)
* Maintenance: Rename the React `Button` that only renders links (a element) to `Link` and remove unused prop & behavior that was non-compliant for aria role usage (Advik Kabra)
* Maintenance: Set up an `wagtail.models.AbstractWorkflow` model to support future customizations around workflows (Hossein)
* Maintenance: Improve `classnames` template tag to handle nested lists of strings, use template tag for admin `body` element (LB (Ben) Johnston)
* Maintenance: Merge `UploadedDocument` and `UploadedImage` into new `UploadedFile` model for easier shared code usage (Advik Kabra, Karl Hobley)
* Maintenance: Optimize queries in dashboard panels (Sage Abdullah)
* Maintenance: Optimize queries in group create/edit view (Sage Abdullah)
* Maintenance: Move modal-workflow.js script usage to base admin template instead of ad-hoc imports (Elhussein Almasri)
* Maintenance: Update all Draftail chooserUrls to be passed in via the Entity options instead of using `window.chooserUrls` globals, removing the need for inline scripts (Elhussein Almasri)
* Maintenance: Enhance `w-init` (InitController) to support a `detail` value to be dispatched on events (Chiemezuo Akujobi)
* Maintenance: Remove usage of inline scripts and instead use event dispatching to instantiate standalone Draftail editor instances (Chiemezuo Akujobi)
* Maintenance: Refactor `page_breadcrumbs` tag to use shared `breadcrumbs.html` template (Sage Abdullah)
* Maintenance: Add `keyboard` icon to admin icon set (Rohit Sharma)
* Maintenance: Remove dead code in the minimap when elements are not found (LB (Ben) Johnston)
* Maintenance: Ensure untrusted data sources are logged correctly in the Stimulus `SwapController` (LB (Ben) Johnston)
* Maintenance: Update Wagtail logo in admin sidebar & favicon plus documentation to the latest version (Osaf AliSayed, Albina Starykova, LB (Ben) Johnston)
* Maintenance: Remove usage of inline scripts and instead use a new Stimulus controller (`w-block`/`BlockController`) to instantiate `StreamField` blocks (Karthik Ayangar)
* Maintenance: Update NPM Babel, TypeScript and Webpack packages (Neeraj Yetheendran)
* Maintenance: Replace ad-hoc JavaScript and vendor Mousetrap usage to a new Stimulus controller (`w-kbd`/`KeyboardController`) (Neeraj Yetheendran)
* Maintenance: Update django-filter to 24.x (Sebastian Muthwill)
* Maintenance: Remove jQuery usage in telepath widget classes (Matt Westcott)
* Maintenance: Remove `xregexp` (IE11 polyfill) along with `window.XRegExp` global util (LB (Ben) Johnston)
* Maintenance: Refactor the Django port of `urlify` to use TypeScript, officially deprecate `window.URLify` global util (LB (Ben) Johnston)

6.0.3

~~~~~~~~~~~~~~~~~~

* Fix: CVE-2024-32882: Permission check bypass when editing a model with per-field restrictions through `wagtail.contrib.settings` or `ModelViewSet` (Ben Morse, Joshua Munn, Jake Howard, Sage Abdullah)
* Fix: Respect `WAGTAIL_ALLOW_UNICODE_SLUGS` setting when auto-generating slugs (LB (Ben) Johnston)
* Fix: Use correct URL when redirecting back to page search results after an AJAX search (Sage Abdullah)
* Fix: Reinstate missing static files in style guide (Sage Abdullah)
* Fix: Provide `convert_mariadb_uuids` management command to assist with upgrading to Django 5.0+ on MariaDB (Matt Westcott)
* Fix: Fix generic CopyView for models with primary keys that need to be quoted (Sage Abdullah)

6.0.2

~~~~~~~~~~~~~~~~~~

* Fix: Ensure that modal tabs width are not impacted by side panel opening (LB (Ben) Johnston)
* Fix: Resolve issue local development of docs when running `make livehtml` (Sage Abdullah)
* Fix: Resolve issue with unwanted padding in chooser modal listings (Sage Abdullah)
* Fix: Ensure `get_add_url()` is always used to re-render the add button when the listing is refreshed in viewsets (Sage Abdullah)
* Fix: Move `modal-workflow.js` script usage to base admin template instead of ad-hoc imports so that choosers work in `ModelViewSet`s (Elhussein Almasri)
* Fix: Ensure JavaScript for common widgets such as `InlinePanel` is included by default in `ModelViewSet`'s create and edit views (Sage Abdullah)
* Fix: Reinstate styles for customizations of `extra_footer_actions` block in page create/edit templates (LB (Ben) Johnston, Sage Abdullah)
* Fix: Prevent crash when loading an empty table block in the editor (Sage Abdullah)
* Docs: Update Sphinx theme to `6.3.0` with a fix for the missing favicon (Sage Abdullah)

6.0.1

~~~~~~~~~~~~~~~~~~

* Fix: Ensure `BooleanRadioSelect` uses the same styles as `RadioSelect` (Thibaud Colas)
* Fix: Prevent failure on `collectstatic` when `ManifestStaticFilesStorage` is in use (Matt Westcott)
* Fix: Prevent error on submitting an empty search in the admin under Elasticsearch (Maikel Martens)

6.0

~~~~~~~~~~~~~~~~

* Added support for Django 5.0
* Implemented universal listings – a unified listing and filtering interface for Pages, Snippets, Forms (Ben Enright, Matt Westcott, Thibaud Colas, Sage Abdullah)
* Add the accessibility checker within the page and snippets editor (Thibaud Colas)
* 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 `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)
* Remove overly verbose image captions in image listings for screen readers (Sage Abdullah)
* Ensure screen readers and dictation tools can more easily navigate bulk actions in images, documents and page listings by streamlining labels and descriptions (Sage Abdullah)
* Remove support for Safari 14 (Thibaud Colas)
* Add ability to click to copy the URL in the image URL generator page (Sai Srikar Dumpeti)
* Add ability to filter by page type and date updated in the page listing view (Matt Westcott)
* Add ability to filter by owner and site in the page listing view (Matt Westcott)
* Improve right-to-left support by using flow-relative float styles (Thibaud Colas)
* Improve right-to-left support by mirroring Wagtail icons as needed (Sage Abdullah)
* Add support for mirroring third-party icons added in Wagtail (Sage Abdullah)
* Show edit as a main action in generic history and usage views (Sage Abdullah)
* Make styles for header buttons consistent (Sage Abdullah)
* Improve styles of slim header's search and filters (Sage Abdullah)
* Change page listing's add button to icon-only (Sage Abdullah)
* Add sublabel to breadcrumbs, including history, usage, and inspect views (Sage Abdullah)
* Standardise search form placeholder to 'Search…' (Sage Abdullah)
* Use SlugInput on all SlugFields by default (LB (Ben) Johnston)
* Show character counts on RichTextBlock with `max_length` (Elhussein Almasri)
* Move locale selector in generic IndexView to a filter (Sage Abdullah)
* Add ability to customize a page's copy form (Neeraj Yetheendran)
* Add optional caption field to `TypedTableBlock` (Tommaso Amici, Cynthia Kiser)
* Switch the `TableBlock` header controls to a field that requires user input (Bhuvnesh Sharma, Aman Pandey, Cynthia Kiser)
* Add `WAGTAILADMIN_LOGIN_URL` setting to allow customizing the login URL (Neeraj Yetheendran)
* Replace legacy dropdown component with new Tippy dropdown-button (Thibaud Colas)
* Add ability to filter by existence of child pages in the page listing view (Matt Westcott)
* Polish dark theme styles and update color tokens (Thibaud Colas, Rohit Sharma)
* Keep database state of pages and snippets updated while in draft state (Stefan Hammer)
* Add `DrilldownController` and `w-drilldown` component to support drilldown menus (Thibaud Colas)
* Add support for `caption` on admin UI Table component (Aman Pandey)
* Add API support for a redirects (contrib) endpoint (Rohit Sharma, Jaap Roes, Andreas Donig)
* Add the default ability for all `SnippetViewSet` & `ModelViewSet` to support being copied (Shlomo Markowitz)
* Support dynamic Wagtail guide links in the admin that are based on the running version of Wagtail (Tidiane Dia)
* Added `AbstractGroupApprovalTask` to simplify customizing behavior of custom `Task` models (John-Scott Atlakson)
* Fix: Update system check for overwriting storage backends to recognize the `STORAGES` setting introduced in Django 4.2 (phijma-leukeleu)
* Fix: Prevent password change form from raising a validation error when browser autocomplete fills in the "Old password" field (Chiemezuo Akujobi)
* Fix: Ensure that the legacy dropdown options, when closed, do not get accidentally clicked by other interactions on wide viewports (CheesyPhoenix, Christer Jensen)
* Fix: Add a fallback background for the editing preview iframe for sites without a background (Ian Price)
* Fix: Preserve whitespace in rendered comments (Elhussein Almasri)
* Fix: Remove search logging from project template so that new projects without the search promotions module will not error (Matt Westcott)
* Fix: Ensure text-only email notifications for updated comments do not escape HTML characters (Rohit Sharma)
* Fix: Use the latest draft when copying an unpublished page for translation (Andrey Nehaychik)
* Fix: Make Workflow and Aging Pages reports only available to users with page-related permissions (Rohit Sharma)
* Fix: Make searching on specific fields work correctly on Elasticsearch when boost is in use (Matt Westcott)
* Fix: Use a visible border and background color to highlight active formatting in the rich text toolbar (Cassidy Pittman)
* Fix: Ensure image focal point box can be removed (Gunnar Scherf)
* Fix: Ensure that Snippets search results correctly use the `index_results.html` or `index_results_template_name` override on initial load (Stefan Hammer)
* Fix: Avoid error when attempting to moderate a page drafted by a now deleted user (Dan Braghis)
* Fix: Do not show multiple error messages when editing a Site to use existing hostname and port (Rohit Sharma)
* Fix: Avoid error when exporting Aging Pages report where a page has an empty `last_published_by_user` (Chiemezuo Akujobi)
* Fix: Ensure Page querysets support using `alias` and `specific` (Tomasz Knapik)
* Fix: Ensure workflow dashboard panels work when the page/snippet is missing (Sage Abdullah)
* Fix: Ensure `ActionController` explicitly checks for elements that allow select functionality (Nandini Arora)
* Fix: Prevent a ValueError with `FormSubmissionsPanel` on Django 5.0 when creating a new form page (Matt Westcott)
* Fix: Avoid duplicate entries in "Recent edits" panel when copying pages (Matt Westcott)
* Fix: Prevent TitleFieldPanel from raising an error when the slug field is missing or read-only (Rohit Sharma)
* Fix: Ensure that the close button on the new dialog designs is visible in the non-message variant (Nandini Arora)
* Fix: Ensure the sidebar account toggle has no duplicate accessible labels (Nandini Arora)
* Fix: Avoid text overflow issues in comment replies and scroll position issues for long comments (Rohit Sharma)
* Fix: Ensure that page listing re-ordering messages and accessible labels can be translated (Aman Pandey, LB (Ben) Johnston)
* Fix: Resolve multiple issues with page listing re-ordering using keyboard and screen readers (Aman Pandey)
* Fix: Remove 'Page' from page types filter on aging pages report (Matt Westcott)
* Fix: Prevent page types filter from showing other non-Page models that match by name (Matt Westcott)
* Fix: Ensure `MultipleChooserPanel` modal works correctly when `USE_THOUSAND_SEPARATOR` is `True` for pages with ids over 1,000 (Sankalp, Rohit Sharma)
* Fix: When using an empty table header (`th`) for visual spacing, ensure this is ignored by accessibility tooling (V Rohitansh)
* Fix: Ensure the panel anchor button sizes meet accessibility guidelines for minimum dimensions (Nandini Arora)
* Fix: Raise a 404 for bulk actions for models that don't exist instead of throwing a 500 error (Alex Tomkins)
* Fix: Raise a `SiteSetting.DoesNotExist` error when retrieving settings for an unrecognized site (Nick Smith)
* Fix: Ensure that defaulted or unique values declared in `exclude_fields_in_copy` are correctly excluded in new copies, resolving to the default value (Elhussein Almasri)
* Fix: Ensure that `default_ordering` set on IndexView is preserved if ModelViewSet does not specify an explicit ordering (Cynthia Kiser)
* Fix: Ensure that TableBlock cells are accessible when using keyboard control only (Elhussein Almasri)
* Fix: Resolve issue where clicking Publish for a Page that was in workflow in Safari would block publishing and not trigger the workflow confirmation modal (Alex Morega)
* Fix: Fix pagination links on model history and usage views (Matt Westcott)
* Fix: Fix crash when accessing workflow reports with a deleted snippet (Sage Abdullah)
* Docs: New developer tutorial (Damilola Oladele, Meagen Voss, Thibaud Colas)
* Docs: Document, for contributors, the use of translate string literals passed as arguments to tags and filters using `_()` within templates (Chiemezuo Akujobi)
* Docs: Document all features for the Documents app in one location (Neeraj Yetheendran)
* Docs: Add section to testing docs about creating pages and working with page content (Mariana Bedran Lesche)
* Docs: Add more nuance to the database recommendations in performance page (Jadesola Kareem)
* Docs: Add clarity that MultipleChooserPanel may require a chooser viewset and how the functionality is expected to work (Andy Chosak)
* Docs: Clarify where documentation build commands should be run (Nikhil S Kalburgi)
* Docs: Add missing import to tutorial BlogPage example (Salvo Polizzi)
* Docs: Update contributing guide documentation and GitHub templates to better support new contributors (Thibaud Colas)
* Docs: Add more CSS authoring guidelines (Thibaud Colas)
* Docs: Update MyST documentation parser library to 2.0.0 (Neeraj Yetheendran)
* Docs: Add documentation writing guidelines for intersphinx / external links (LB (Ben) Johnston)
* Docs: Add `Page` model reference `get_children` documentation (Salvo Polizzi)
* Docs: Enforce CI build checks for documentation so that malformed links or missing images will not be allowed (Neeraj Yetheendran)
* Docs: Update spelling on customizing admin template and page model section from British to American English (Victoria Poromon)
* Docs: Add documentation for how to override the file locations for custom image models via `get_upload_to` methods (Osaf AliSayed, Dharmik Gangani)
* Docs: Update documentation theme (Sphinx Wagtail Theme) to 6.2.0, fixing the incorrect favicon (LB (Ben) Johnston, Sahil Jangra)
* Docs: Refactor promotion banner without jQuery and use sameSite cookies when storing if cleared (LB (Ben) Johnston)
* Docs: Use cross-reference for compatible Python versions in tutorial instead of the out-of-date listing (mirusu400)
* Maintenance: Update BeautifulSoup upper bound to 4.12.x (scott-8)
* Maintenance: Migrate initialization of classes (such as `body.ready`) from multiple JavaScript implementations to one Stimulus controller `w-init` (Chiemezuo Akujobi)
* Maintenance: Adopt the usage of translate string literals using `arg=_('...')` in all `wagtailadmin` module templates (Chiemezuo Akujobi)
* Maintenance: Migrate the contrib styleguide index view to a class-based view (Chiemezuo Akujobi)
* Maintenance: Update djhtml to 3.0.6 (Matt Westcott)
* Maintenance: Migrate the contrib settings edit view to a class-based view (Chiemezuo Akujobi, Sage Abdullah)
* Maintenance: Remove django-pattern-library upper bound in testing dependencies (Sage Abdullah)
* Maintenance: Split up functions in Elasticsearch backend for easier extensibility (Marcel Kornblum, Cameron Lamb, Sam Dudley)
* Maintenance: Relax draftjs_exporter dependency to allow using version 5.x (Sylvain Fankhauser)
* Maintenance: Refine styling of listings, account settings panels and the block chooser (Meli Imelda)
* Maintenance: Remove icon font support (Matt Westcott)
* Maintenance: Remove deprecated SVG icons (Matt Westcott)
* Maintenance: Remove icon font styles (Thibaud Colas)
* Maintenance: Migrate account editing view to a class-based view (Kehinde Bobade)
* Maintenance: Upgrade frontend tooling to use Node 20 (LB (Ben) Johnston)
* Maintenance: Upgrade `ruff` and replace `black` with `ruff format` (John-Scott Atlakson)
* Maintenance: Update Willow upper bound to 2.x (Dan Braghis)
* Maintenance: Removed support for Django < 4.2 (Dan Braghis)
* Maintenance: Refactor page explorer index template to extend generic index template (Sage Abdullah)
* Maintenance: Replace template components implementation with standalone `laces` library (Tibor Leupold)
* Maintenance: Refactor snippets index view and template to make better use of generic IndexView (Sage Abdullah)
* Maintenance: Introduce an internal `{% formattedfield %}` tag to replace direct use of `wagtailadmin/shared/field.html` (Matt Westcott)
* Maintenance: Update Telepath dependency to 0.3.1 (Matt Westcott)
* Maintenance: Allow `ActionController` to have a `noop` method to more easily leverage standalone Stimulus action options (Nandini Arora)
* Maintenance: Upgrade to latest TypeScript and Storybook (Thibaud Colas, Sage Abdullah)
* Maintenance: Turn on `skipLibCheck` for TypeScript (LB (Ben) Johnston)
* Maintenance: Refactor documents listing view to use generic IndexView (Sage Abdullah)
* Maintenance: Support for the Stimulus `CloneController` to auto clear the added content after a set duration (LB (Ben) Johnston)
* Maintenance: Refactor images listing view to use generic IndexView (Sage Abdullah)
* Maintenance: Refactor form pages listing view to use generic IndexView (Sage Abdullah)
* Maintenance: Update Stylelint, our linting configuration, Sass, and related code changes (LB (Ben) Johnston)
* Maintenance: Simplify browserslist and browser support documentation (Thibaud Colas)
* Maintenance: Relax django-taggit dependency to allow 5.0 (Sylvain Fankhauser)
* Maintenance: Fix various warnings when building docs (Cynthia Kiser)
* Maintenance: Upgrade sphinxcontrib-spelling to 7.x for Python 3.12 compatibility (Matt Westcott)
* Maintenance: Move logic for django-filters filtering into `BaseListingView` (Matt Westcott)
* Maintenance: Remove or replace legacy CSS classes: visuallyhidden, visuallyvisible, divider-after, divider-before, inline, inline-block, block, u-hidden, clearfix, reordering, overflow (Thibaud Colas)
* Maintenance: Prevent future issues with icon.html end-of-file newlines (Thibaud Colas)
* Maintenance: Rewrite styles using legacy `c-`, `o-`, `u-`, `t-`, `is-` prefixes (Thibaud Colas)
* Maintenance: Remove invalid CSS styles / Sass selector concatenation (Thibaud Colas)
* Maintenance: Refactor listing views to share more queryset ordering logic (Matt Westcott)
* Maintenance: Remove `initTooltips` in favor of Stimulus controller (LB (Ben) Johnston)
* Maintenance: Enhance the Stimulus `InitController` to allow for custom event dispatching when ready (Aditya, LB (Ben) Johnston)
* Maintenance: Remove inline script usage for comment initialization and adopt an event listener/dispatch approach for better CSP compliance (Aditya, LB (Ben) Johnston)
* Maintenance: Migrate styleguide ad-hoc JavaScript to use styles only to avoid CSP issues (LB (Ben) Johnston)
* Maintenance: Update Jest version - frontend tooling (Nandini Arora)
* Maintenance: Remove non-functional and inaccessible auto-focus on first field in page create forms (LB (Ben) Johnston)
* Maintenance: Migrate the unsaved form checks & confirmation trigger to Stimulus `UnsavedController` (Sai Srikar Dumpeti, LB (Ben) Johnston)
* Maintenance: Reduce gap between snippets and generic views/templates (Sage Abdullah)
* Maintenance: Migrate page listing menu re-ordering (drag & drop) from jQuery inline scripts to `OrderableController` with a more accessible solution (Aman Pandey, LB (Ben) Johnston)
* Maintenance: Clean up scss variable usage, remove unused variables and mixins, adopt more core token variables (Jai Vignesh J, Nandini Arora, LB (Ben) Johnston)
* Maintenance: Migrate Image URL generator views to class-based views (Rohit Sharma)
* Maintenance: Use Django's `FileResponse` when serving files such as Images or Documents (Jake Howard)
* Maintenance: Deprecated `WidgetWithScript` base widget class (LB (Ben) Johnston)
* Maintenance: Remove support for Django 4.1 and below (Sage Abdullah)

5.2.5

~~~~~~~~~~~~~~~~~~

* Fix: Respect `WAGTAIL_ALLOW_UNICODE_SLUGS` setting when auto-generating slugs (LB (Ben) Johnston)
* Fix: Use correct URL when redirecting back to page search results after an AJAX search (Sage Abdullah)
* Fix: Provide `convert_mariadb_uuids` management command to assist with upgrading to Django 5.0+ on MariaDB (Matt Westcott)

5.2.4

~~~~~~~~~~~~~~~~~~

* Fix: Prevent TitleFieldPanel from raising an error when the slug field is missing or read-only (Rohit Sharma)
* Fix: Fix pagination links on model history and usage views (Matt Westcott)
* Fix: Fix crash when accessing workflow reports with a deleted snippet (Sage Abdullah)
* Fix: Prevent error on submitting an empty search in the admin under Elasticsearch (Maikel Martens)

5.2.3

~~~~~~~~~~~~~~~~~~

* Fix: Prevent a ValueError with `FormSubmissionsPanel` on Django 5.0 when creating a new form page (Matt Westcott)
* Fix: Specify telepath 0.3.1 as the minimum supported version, for Django 5.0 compatibility (Matt Westcott)

5.2.2

~~~~~~~~~~~~~~~~~~

* Added support for Django 5.0
* Fix: Use a visible border and background color to highlight active formatting in the rich text toolbar (Cassidy Pittman)
* Fix: Ensure image focal point box can be removed (Gunnar Scherf)
* Fix: Ensure that Snippets search results correctly use the `index_results.html` or `index_results_template_name` override on initial load (Stefan Hammer)
* Fix: Avoid error when attempting to moderate a page drafted by a now deleted user (Dan Braghis)
* Fix: Ensure workflow dashboard panels work when the page/snippet is missing (Sage Abdullah)
* Fix: Prevent custom controls from stacking on top of the comment button in Draftail toolbar (Ben Morse)

5.2.1

~~~~~~~~~~~~~~~~~~

* Fix: Add a fallback background for the editing preview iframe for sites without a background (Ian Price)
* Fix: Remove search logging from project template so that new projects without the search promotions module will not error (Matt Westcott)
* Fix: Ensure text only email notifications for updated comments do not escape HTML characters (Rohit Sharma)
* Fix: Use logical OR operator to combine search fields for Django ORM in generic IndexView (Varun Kumar)
* Fix: Ensure that explorer_results views fill in the correct next_url parameter on action URLs (Matt Westcott)
* Fix: Fix crash when accessing the history view for a translatable snippet (Sage Abdullah)
* Fix: Prevent upload of SVG images from failing when image feature detection is enabled (Joshua Munn)
* Fix: Fix crash when using the locale switcher on the snippets create view (Sage Abdullah)
* Fix: Fix performance regression on reports from calling `decorate_paginated_queryset` before pagination / filtering (Alex Tomkins)
* Fix: Make searching on specific fields work correctly on Elasticsearch when boost is in use (Matt Westcott)
* Fix: Prevent snippet permission post-migrate hook from failing on multiple database configurations (Joe Tsoi)
* Fix: Reinstate ability to filter on page type when searching on an empty query (Sage Abdullah)
* Fix: Prevent error on locked pages report when a user has locked multiple pages (Matt Westcott)
* Docs: Fix code example for `{% picture ... as ... %}` template tag (Rezyapkin)

5.2

~~~~~~~~~~~~~~~~~~~~

* Redesigned page listing view (Ben Enright, Matt Westcott, Thibaud Colas, Sage Abdullah)
* Support OpenSearch as an alternative to Elasticsearch (Matt Westcott)
* Add support for Python 3.12 (Matt Westcott)
* Add preview-aware and page-aware fragment caching template tags, `wagtailcache` & `wagtailpagecache` (Jake Howard)
* Always set help text element ID for form fields with help text in `field.html` template (Sage Abdullah)
* Move `SnippetViewSet` menu registration mechanism to base `ViewSet` class (Sage Abdullah)
* Enable reference index tracking for models registered with `ModelViewSet` (Sage Abdullah)
* When copying a page or creating an alias, copy its view restrictions to the destination (Sandeep Choudhary, Suyash Singh)
* Support pickling of StreamField values (pySilver)
* Move `SnippetViewSet` template override mechanism to `ModelViewSet` (Sage Abdullah)
* Move `SnippetViewSet.list_display` to `ModelViewSet` (Sage Abdullah)
* Remove `wagtail.publish` log action on aliases when they are created from live source pages or the source page is published (Dan Braghis)
* Remove `wagtail.unpublish` log action on aliases when source page is unpublished (Dan Braghis)
* Add compare buttons to workflow dashboard panel (Matt Westcott)
* Add the ability to use filters and to export listings in generic `IndexView` (Sage Abdullah)
* Move `list_filter`, `filterset_class`, `search_fields`, `search_backend_name`, `list_export`, `export_filename`, `list_per_page`, and `ordering` from `SnippetViewSet` to `ModelViewSet` (Sage Abdullah, Cynthia Kiser)
* Add default header titles to generic `IndexView` and `CreateView` (Sage Abdullah)
* Allow overriding `IndexView.export_headings` via `ModelViewSet` (Christer Jensen, Sage Abdullah)
* Support specifying a `get_object_list` method on `ChooserViewSet` (Matt Westcott)
* Add `linked_fields` mechanism on chooser widgets to allow choices to be limited by fields on the calling page (Matt Westcott)
* Add support for merging cells within `TableBlock` with the `mergedCells` option (Gareth Palmer)
* When adding a panel within `InlinePanel`, focus will now shift to that content similar to `StreamField` (Faishal Manzar)
* Show the full first published at date within a tooltip on the Page status sidebar on the relative date (Rohit Sharma)
* Extract generic breadcrumbs functionality from page breadcrumbs (Sage Abdullah)
* Add support for `placement` in the `human_readable_date` tooltip template tag (Rohit Sharma)
* Add breadcrumbs support to custom `ModelViewSet` views (Sage Abdullah)
* Support passing extra context variables via the `{% component %}` tag (Matt Westcott)
* Allow subclasses of `PagesAPIViewSet` override default Page model via the `model` attribute (Neeraj Yetheendran, Herbert Poul)
* Allow `ModelViewSet` to be used with models that have non-integer primary keys (Sage Abdullah)
* Add the ability to set an external link/text for promoted search result entries (TopDevPros, Brad Busenius)
* Add support for subject and body in the Email link chooser form (TopDevPros, Alexandre Joly)
* Extract generic `HistoryView` from snippets and add it to `ModelViewSet` (Sage Abdullah)
* Add generic `UsageView` to `ModelViewSet` (Sage Abdullah)
* Add the ability to define listing buttons on generic `IndexView` (Sage Abdullah)
* Add a visual progress bar to the output of the `wagtail_update_image_renditions` management command (Faishal Manzar)
* Increase the read buffer size to improve efficiency and performance when generating file hashes for document or image uploads, use `hashlib.file_digest` if available (Python 3.11+) (Jake Howard)
* API ordering now supports multiple fields (Rohit Sharma, Jake Howard)
* Pass block value to `Block.get_template` to allow varying template based on value (Florian Delizy)
* Add `InlinePanel` DOM events for when ready and when items added or removed (Faishal Manzar)
* Add a new `picture` template tag for Django Templates and Jinja (Thibaud Colas)
* Add a new `srcset_image` template tag for Django Templates and Jinja (Thibaud Colas)
* Support `Filter` instances as input for `AbstractImage.get_renditions()` (Thibaud Colas)
* Improve error messages for image template tags (Thibaud Colas)
* Do not render minimap if there are no panel anchors (Sage Abdullah)
* Use dropdown buttons on listings in dashboard panels (Sage Abdullah)
* Implement breadcrumbs design refinements (Thibaud Colas)
* Support extending Wagtail client-side with Stimulus (LB (Ben) Johnston)
* Update all `FieldPanel('title')` examples to use the recommended `TitleFieldPanel('title')` panel (Chinedu Ihedioha)
* The `purge_revisions` management command now respects revisions that have a `on_delete=PROTECT` foreign key relation and won't delete them (Neeraj P Yetheendran, Meghana Reddy, Sage Abdullah, Storm Heg)
* Add support for Shift + Click behaviour in form submissions and simple translations submissions (LB (Ben) Johnston)
* Improve filtering of audit logging based on the user's permissions (Stefan Hammer)
* Fix: Ensure that StreamField's `FieldBlock`s correctly set the `required` and `aria-describedby` attributes (Storm Heg)
* Fix: Avoid an error when the moderation panel (admin dashboard) contains both snippets and private pages (Matt Westcott)
* Fix: When deleting collections, ensure the collection name is correctly shown in the success message (LB (Ben) Johnston)
* Fix: Filter out comments on Page editing counts that do not correspond to a valid field / block path on the page such as when a field has been removed (Matt Westcott)
* Fix: Allow `PublishMenuItem` to more easily support overriding its label via `construct_page_action_menu` (Sébastien Corbin)
* Fix: Allow locale selection when creating a page at the root level (Sage Abdullah)
* Fix: Ensure the admin login template correctly displays all `non_fields_errors` for any custom form validation (Sébastien Corbin)
* Fix: Ensure 'mark as active' label in workflow bulk action set active form can be translated (Rohit Sharma)
* Fix: Ensure the panel title for a user's settings correctly reflects the `WAGTAIL_EMAIL_MANAGEMENT_ENABLED` setting by not showing 'email' if disabled (Omkar Jadhav)
* Fix: Update Spotify oEmbed provider URL parsing to resolve correctly (Dhrűv)
* Fix: Update link colors within help blocks to meet accessible contrast requirements (Rohit Sharma)
* Fix: Ensure the search promotions popular search terms picker correctly refers to the correct model (LB (Ben) Johnston)
* Fix: Correctly quote non-numeric primary keys on snippet inspect view (Sage Abdullah)
* Fix: Prevent crash on snippet inspect view when displaying a null foreign key to an image (Sage Abdullah)
* Fix: Ensure that pages in moderation show as "Live + In Moderation" in the page explorer rather than "Live + Draft" (Sage Abdullah)
* Fix: Prevent error when updating reference index for objects with a lazy ParentalKey-related object (Chris Shaw)
* Fix: Ignore conflicts when inserting reference index entries to prevent race conditions causing uniqueness errors (Chris Shaw)
* Fix: Populate the correct return value when creating a new snippet within the snippet chooser (claudobahn)
* Fix: Reinstate missing filter by page type on page search (Matt Westcott)
* Fix: Ensure very long words can wrap when viewing saved comments (Chiemezuo Akujobi)
* Fix: Avoid forgotten password link text conflicting with the supplied aria-label (Thibaud Colas)
* Fix: Fix log message to record the correct restriction type when removing a page view restriction (Rohit Sharma, Hazh. M. Adam)
* Fix: Avoid potential race condition with new Page subscriptions on the edit view (Alex Tomkins)
* Fix: Use the correct action log when creating a redirect (Thibaud Colas)
* Fix: Ensure that all password fields consistently allow leading & trailing whitespace (Neeraj P Yetheendran)
* Docs: Expand documentation on using `ViewSet` and `ModelViewSet` (Sage Abdullah)
* Docs: Document `WAGTAILADMIN_BASE_URL` on "Integrating Wagtail into a Django project" page (Shreshth Srivastava)
* Docs: Replace incorrect screenshot for authors listing on tutorial (Shreshth Srivastava)
* Docs: Add documentation for building non-model-based choosers using the _queryish_ library (Matt Westcott)
* Docs: Fix incorrect tag library import on focal points example (Hatim Makki Hoho)
* Docs: Add reminder about including your custom Draftail feature in any overridden `WAGTAILADMIN_RICH_TEXT_EDITORS` setting (Charlie Sue)
* Docs: Mention the need to install `python3-venv` on Ubuntu (Brian Mugo)
* Docs: Document the use of the Google developer documentation style guide in documentation (Damilola Oladele)
* Docs: Fix Inconsistent URL Format in Getting Started tutorial (Olumide Micheal)
* Maintenance: Fix snippet search test to work on non-fallback database backends (Matt Westcott)
* Maintenance: Update Eslint, Prettier, Jest, a11y-dialog, axe-core and js-cookie npm packages (LB (Ben) Johnston)
* Maintenance: Add npm scripts for TypeScript checks and formatting SCSS files (LB (Ben) Johnston)
* Maintenance: Run tests in parallel in some of the CI setup (Sage Abdullah)
* Maintenance: Remove unused WorkflowStatus view, urlpattern, and workflow-status.js (Storm Heg)
* Maintenance: Add support for options/attrs in Telepath widgets so that attrs render on the created DOM (Storm Heg)
* Maintenance: Update pre-commit hooks to be in sync with latest changes to Eslint & Prettier for client-side changes (Storm Heg)
* Maintenance: Add `WagtailTestUtils.get_soup()` method for testing HTML content (Storm Heg, Sage Abdullah)
* Maintenance: Allow `ViewSet` subclasses to customize `url_prefix` and `url_namespace` logic (Matt Westcott)
* Maintenance: Simplify `SnippetViewSet` registration code (Sage Abdullah)
* Maintenance: Rename groups `IndexView.results_template_name` to `results.html` (Sage Abdullah)
* Maintenance: Migrate form submission listing checkbox toggling to the shared `w-bulk` Stimulus implementation (LB (Ben) Johnston)
* Maintenance: Allow viewsets to define a common set of view kwargs (Matt Westcott)
* Maintenance: Migrate the editor unsaved messages popup to be driven by Stimulus using the shared `w-message` controller (LB (Ben) Johnston, Hussain Saherwala)
* Maintenance: Do not use jest inside `stubs.js` to prevent Storybook from crashing (LB (Ben) Johnston)
* Maintenance: Refactor snippets templates to reuse the shared `slim_header.html` template (Sage Abdullah)
* Maintenance: Refactor `slim_header.html` template to reduce code duplication (Sage Abdullah)
* Maintenance: Upgrade Willow to v1.6.2 to support MIME type data without reliance on `imghdr` (Jake Howard)
* Maintenance: Replace `imghdr` with Willow's built-in MIME type detection (Jake Howard)
* Maintenance: Migrate all other `data-tippy` HTML attribute usage to the Stimulus data-*-value attributes for w-tooltip & w-dropdown (Subhajit Ghosh, LB (Ben) Johnston)
* Maintenance: Replace `total_ordering` usage with comparison functions implementation (Virag Jain)
* Maintenance: Replace `<script type="text/django-form-template"><-/script>` template approach with HTML `template` elements in InlinePanel and expanding formset (Mansi Gundre, Subhajit Ghosh, LB (Ben) Johnston)
* Maintenance: Refactor side panels code for better reuse in pages and snippets (Sage Abdullah)
* Maintenance: Deprecate legacy URL redirects in `ModelViewSet` and `SnippetViewSet` (Sage Abdullah)
* Maintenance: Simplify code for registering page listing action buttons (Matt Westcott)
* Maintenance: Removed the unused, legacy, Wagtail userbar views set up for an old iframe approach (Sage Abdullah)
* Maintenance: Optimise `lru_cache` usage (Jake Howard)
* Maintenance: Implement `date_since` in `get_most_popular` inside `search_promotions.models.Query` (TopDevPros)
* Maintenance: Refactor generic view subclasses to better reuse the generic templates and breadcrumbs (Sage Abdullah)
* Maintenance: Adopt consistent `classname` (not `classnames`) attributes for all `MenuItem` usage, including deprecation warnings (LB (Ben) Johnston)
* Maintenance: Adopt consistent `classname` (not `classnames`) attribute within the `wagtail.images.formats.Format` instance, including deprecation warnings (LB (Ben) Johnston)
* Maintenance: Deprecate `context` argument of `construct_snippet_listing_buttons` hook (Sage Abdullah)
* Maintenance: Deprecate legacy moderation system (Sage Abdullah)
* Maintenance: Update CI database versions (Jake Howard)
* Maintenance: Add changelog and issue tracker links to the PyPI project page (Panagiotis H.M. Issaris)
* Maintenance: Add better deprecation warnings to the `search.Query` & `search.QueryDailyHits` model, move final set of templates from the admin search module to the search promotions contrib module (LB (Ben) Johnston)
* Maintenance: Add generic `InspectView` to `ModelViewSet` (Sage Abdullah)
* Maintenance: Migrate select all on focus/click behavior to Stimulus, used on the image URL generator (Chiemezuo Akujobi)
* Maintenance: Add support for a `reset` method to support Stimulus driven dynamic field resets via the `w-action` controller (Chiemezuo Akujobi)
* Maintenance: Add support for a `notify` target on the Stimulus dialog for dispatching events internally (Chiemezuo Akujobi)
* Maintenance: Migrate publishing schedule dialog field resets to Stimulus (Chiemezuo Akujobi)

5.1.3

~~~~~~~~~~~~~~~~~~

* Fix: CVE-2023-45809: Disclosure of user names via admin bulk action views (Matt Westcott)
* Fix: Fix `SnippetBulkAction` not respecting `models` definition (Sandro Rodrigues)
* Fix: Correctly quote non-numeric primary keys on snippet inspect view (Sage Abdullah)
* Fix: Prevent crash on snippet inspect view when displaying a null foreign key to an image (Sage Abdullah)
* Fix: Populate the correct return value when creating a new snippet within the snippet chooser (claudobahn)
* Fix: Reinstate missing filter by page type on page search (Matt Westcott)
* Fix: Use the correct action log when creating a redirect (Thibaud Colas)

5.1.2

~~~~~~~~~~~~~~~~~~

* Fix: Avoid use of `ignore_conflicts` when creating extra permissions for snippets, for SQL Server compatibility (Sage Abdullah)
* Fix: Ensure sequence on `wagtailsearchpromotions_query` table is correctly set after migrating data (Jake Howard)
* Fix: Change spreadsheet export headings to match listing view column headings (Christer Jensen, Sage Abdullah)
* Fix: Fix numbers, booleans, and `None` from being exported as strings (Christer Jensen)
* Fix: Restore fallback on full-word search for snippet choosers and generic index views (Matt Westcott)
* Fix: Restore compatibility with pre-7.15 versions of the Elasticsearch Python library, allowing use of Opensearch (Matt Westcott)
* Fix: Fix error when pickling BaseSiteSetting instances (Matt Westcott)
* Maintenance: For Python 3.13 support - upgrade Willow to v1.6.2, replace `imghdr` with Willow's built-in MIME type detection (Jake Howard)

5.1.1

~~~~~~~~~~~~~~~~~~

* Introduce `wagtail.admin.ui.tables.BooleanColumn` to display boolean values as icons (Sage Abdullah)
* Fix: Show not-`None` falsy values instead of blank in generic table cell template (Sage Abdullah)
* Fix: Fix `read_only` panels for fields with translatable choice labels (Florent Lebreton)

5.1

~~~~~~~~~~~~~~~~

* Add support for read-only FieldPanels (Andy Babic)
* Add support for query-time boosting to Elasticsearch 6 and above (Shohan Dutta Roy)
* Add support for Elasticsearch 8 (Matt Westcott, Wesley van Lee)
* Mark calls to `md5` as not being used for secure purposes, to avoid flagging on FIPS-mode systems (Sean Kelly)
* Return filters from `parse_query_string` as a `QueryDict` to support multiple values (Aman Pandey)
* Explicitly specify `MenuItem.name` for all admin menu and submenu items (Justin Koestinger)
* Add oEmbed provider patterns for YouTube Shorts and YouTube Live URLs (valnuro, Fabien Le Frapper)
* Add initial implementation of `PagePermissionPolicy` (Sage Abdullah)
* Refactor `UserPagePermissionsProxy` and `PagePermissionTester` to use `PagePermissionPolicy` (Sage Abdullah, Tidiane Dia)
* Add a predictable default ordering of the "Object/Other permissions" in the Group Editing view, allow this ordering to be customized (Daniel Kirkham)
* Add `AbstractImage.get_renditions()` for efficient generation of multiple renditions (Andy Babic)
* Optimise queries in collection permission policies using cache on the user object (Sage Abdullah)
* Phone numbers entered via a link chooser will now have any spaces stripped out, ensuring a valid href="tel:..." attribute (Sahil Jangra)
* Auto-select the `StreamField` block when only one block type is declared (Sébastien Corbin)
* Add support for more advanced Draftail customization APIs (Thibaud Colas)
* Add the ability to export snippets listing via `SnippetViewSet.list_export` (Sage Abdullah)
* Add support for adding HTML `attrs` on `FieldPanel`, `FieldRowPanel`, `MultiFieldPanel`, and others (Aman Pandey, Antoni Martyniuk, LB (Ben) Johnston)
* Add support for `--template` option to `wagtail start` (Thibaud Colas)
* Change to always cache renditions (Jake Howard)
* Update link/document rich text tooltips for consistency with the inline toolbar (Albina Starykova)
* Increase the contrast between the rich text / StreamField block picker and the page in dark mode (Albina Starykova)
* Purge revisions of non-page models in `purge_revisions` command (Sage Abdullah)
* Add support for AVIF images (Aman Pandey)
* Change the default WebP quality to 80 to match AVIF (Aman Pandey)
* Adopt optimized Wagtail logo in the admin interface (Albina Starykova)
* Add support for presenting the userbar (Wagtail button) in dark mode (Albina Starykova)
* Add Inspect view to snippets (Sage Abdullah)
* Fix: Prevent choosers from failing when initial value is an unrecognized ID, e.g. when moving a page from a location where `parent_page_types` would disallow it (Dan Braghis)
* Fix: Move comment notifications toggle to the comments side panel (Sage Abdullah)
* Fix: Remove comment button on InlinePanel fields (Sage Abdullah)
* Fix: Fix missing link to `UsageView` from `EditView` for snippets (Christer Jensen)
* Fix: Prevent lowercase conversions of IndexView column headers (Virag Jain)
* Fix: Ensure that `RichText` objects with the same values compare as equal (NikilTn)
* Fix: Use `gettext_lazy` on generic model views so that language settings are correctly used (Matt Westcott)
* Fix: Prevent JS error when reverting the spinner on a submit button after a validation error (LB (Ben) Johnston)
* Fix: Prevent crash when comparing page revisions that include `MultipleChooserPanel` (Matt Westcott)
* Fix: Ensure that title and slug continue syncing after entering non-URL-safe characters (LB (Ben) Johnston)
* Fix: Ensure that title and slug are synced on keypress, not just on blur (LB (Ben) Johnston)
* Fix: Add a more visible active state for side panel toggle buttons (Thibaud Colas)
* Fix: Debounce and optimise live preview panel to prevent excessive requests (Sage Abdullah)
* Fix: Use constant-time comparison for image serve URL signatures (Jake Howard)
* Fix: Ensure taggit field type-ahead options show correctly in the dark mode theme (Sage Abdullah)
* Fix: Fix the lock description message missing the model_name variable when locked only by system (Sébastien Corbin)
* Fix: Fix empty blocks created in migration operations (Sandil Ranasinghe)
* Fix: Ensure that gettext_lazy works correctly when using verbose_name on a generic Settings models (Sébastien Corbin)
* Fix: Remove unnecessary usage of `innerHTML` when modifying DOM content (LB (Ben) Johnston)
* Fix: Avoid `ValueError` when extending `PagesAPIViewSet` and setting `meta_fields` to an empty list (Henry Harutyunyan, Alex Morega)
* Fix: Improve accessibility for header search, remove autofocus on page load, advise screen readers that content has changed when results update (LB (Ben) Johnston)
* Fix: Fix incorrect override of `PagePermissionHelper.user_can_unpublish_obj()` in ModelAdmin (Sébastien Corbin)
* Fix: Prevent memory exhaustion when updating a large number of image renditions (Jake Howard)
* Fix: Add missing Time Zone conversions and date formatting throughout the admin (Stefan Hammer)
* Fix: Ensure that audit logs and revisions consistently use UTC and add migration for existing entries (Stefan Hammer)
* Fix: Make sure "critical" buttons have enough color contrast in dark mode (Albina Starykova)
* Fix: Improve visibility of scheduled publishing errors in status side panel (Sage Abdullah)
* Fix: Prevent 'choose' permission from being ignored when looking up 'choose', 'edit' and 'delete' permissions in combination (Sage Abdullah)
* Fix: Take user's permissions into account for image / document counts on the admin dashboard (Sage Abdullah)
* Fix: Avoid N+1 queries in users index view (Tidiane Dia)
* Fix: Use a theme-agnostic color token for read-only panels support in dark mode (Thibaud Colas)
* Fix: Ensure collapsible StreamBlocks expand as necessary to show validation errors (Storm Heg)
* Fix: Ensure userbar dialog can sit above other website content (LB (Ben) Johnston)
* Fix: Fix preview panel loading issues (Sage Abdullah)
* Fix: Fix `search_promotions` `0004_copy_queries` migration for long-lived Wagtail instances (Sage Abdullah)
* Fix: Guard against `TypeError` in `0088_fix_log_entry_json_timestamps` migration (Sage Abdullah)
* Fix: Add migration to replace JSON null values with empty objects in log entries' data (Sage Abdullah)
* Fix: Typo in the `page_header_buttons` template tag when accessing the context's request object (Robert Rollins)
* Fix: Ensure `ActionController` explicitly checks for elements that allow select functionality (Nandini Arora)
* Docs: Document how to add non-ModelAdmin views to a `ModelAdminGroup` (Onno Timmerman)
* Docs: Document how to add StructBlock data to a StreamField (Ramon Wenger)
* Docs: Update ReadTheDocs settings to v2 to resolve urllib3 issue in linkcheck extension (Thibaud Colas)
* Docs: Update documentation for `log_action` parameter on `RevisionMixin.save_revision` (Christer Jensen)
* Docs: Reorganise snippets documentation to cover customizations and optional features (Sage Abdullah)
* Docs: Update color customizations guidance to include theme-agnostic options (Thibaud Colas)
* Docs: Mark LTS releases in release note page titles (Thiago C. S. Tioma)
* Docs: Revise main Getting started tutorial for clarity (Kevin Chung (kev-odin))
* Docs: Revamp the start of the getting started section, with separate quick install page (Damilola Oladele)
* Docs: Move the tutorial’s snippets section to come before tags (Damilola Oladele)
* Docs: Rewrite the getting started tutorial to address identified friction points (Damilola Oladele)
* Docs: Switch the Getting started tutorial’s snippets example to be more understandable (Damilola Oladele)
* Docs: Update the deployment documentation page and remove outdated information (Jake Howard)
* Docs: Add more items to performance page regarding pre-fetching images and frontend caching (Jake Howard)
* Docs: Add docs for managing stored queries in `searchpromotions` (Scott Foster)
* Docs: Add docs for migrating from ModelAdmin to Snippets (Sage Abdullah)
* Maintenance: Removed support for Python 3.7 (Dan Braghis)
* Maintenance: Switch to ruff for flake8 / isort code checking (Oliver Parker)
* Maintenance: Deprecate `insert_editor_css` in favour of `insert_global_admin_css` (Ester Beltrami)
* Maintenance: Optimise use of `specific` on Task and TaskState (Matt Westcott)
* Maintenance: Use table UI component for workflow task index view (Matt Westcott)
* Maintenance: Make header search available on generic index view (Matt Westcott)
* Maintenance: Update pagination behaviour to reject out-of-range / invalid page numbers (Matt Westcott)
* Maintenance: Remove color tokens which are duplicates / unused (Thibaud Colas)
* Maintenance: Add tests to help with maintenance of theme color tokens (Thibaud Colas)
* Maintenance: Split out a base listing view from generic index view (Matt Westcott)
* Maintenance: Update type hints in admin/ui/components.py so that `parent_context` is mutable (Andreas Nüßlein)
* Maintenance: Deprecate `UserPagePermissionsProxy` (Sage Abdullah)
* Maintenance: Optimise the Settings context processor to avoid redundantly finding a Site to improve cache ratios (Jake Howard)
* Maintenance: Convert page listing to a class-based view (Matt Westcott)
* Maintenance: Clean up page reports and type usage views to be independent of page listing views (Matt Westcott)
* Maintenance: Migrate Tagit initialization to a Stimulus Controller (LB (Ben) Johnston)
* Maintenance: Refactor GroupPagePermission to use Django's Permission model (Sage Abdullah)
* Maintenance: Convert the CONTRIBUTORS file to Markdown (Dan Braghis)
* Maintenance: Move `django-filter` version upper bound to v23 (Yuekui)
* Maintenance: Update Pillow dependency to allow 10.x, only include support for >= 9.1.0 (Yuekui)
* Maintenance: Migrate async header search and search within the Task chooser modal to `w-swap`, a Stimulus controller (LB (Ben) Johnston)
* Maintenance: Replace Bootstrap tooltips with a new `w-tooltip` Stimulus controller (LB (Ben) Johnston)
* Maintenance: Replace ModelAdmin history header human readable date template tag (LB (Ben) Johnston)
* Maintenance: Update uuid to v9 and Jest to v29, with `jest-environment-jsdom` and new snapshot format (LB (Ben) Johnston)
* Maintenance: Update test cases producing undesirable console output due to missing mocks, uncaught errors, warnings (LB (Ben) Johnston)
* Maintenance: Remove unused snippets _header_with_history.html template (Thibaud Colas)
* Maintenance: Migrate dialog instantiation to a new `w-dialog` Stimulus controller (Loveth Omokaro, LB (Ben) Johnston)
* Maintenance: Support dialog template cloning using a new `w-teleport` Stimulus controller (Loveth Omokaro, LB (Ben) Johnston)
* Maintenance: Migrate away from using the `"wagtailadmin/shared/field_as_li.html"` template include (Storm Heg)
* Maintenance: Deprecate `wagtail.contrib.modeladmin` (Sage Abdullah)
* Maintenance: Upgrade documentation theme `sphinx_wagtail_theme` to v6.1.1 which includes multiple styling fixes and always visible code copy buttons (LB (Ben) Johnston)
* Maintenance: Don't update the reference index while deleting it (Andy Chosak)
* Maintenance: Allow `ActionController` to have a `noop` method to more easily leverage standalone Stimulus action options (Nandini Arora)

5.0.5

~~~~~~~~~~~~~~~~~~

* Fix: CVE-2023-45809: Disclosure of user names via admin bulk action views (Matt Westcott)

5.0.4

~~~~~~~~~~~~~~~~~~

* Maintenance: Relax Willow / Pillow dependency to allow use of current Pillow versions with security fixes (Dan Braghis)

5.0.3

~~~~~~~~~~~~~~~~~~

* Fix: Avoid use of `ignore_conflicts` when creating extra permissions for snippets, for SQL Server compatibility (Sage Abdullah)
* Fix: Ensure sequence on `wagtailsearchpromotions_query` table is correctly set after migrating data (Jake Howard)
* Fix: Update Pillow dependency to 9.1.0 (Daniel Kirkham)

5.0.2

~~~~~~~~~~~~~~~~~~

* Added `TitleFieldPanel` to support title / slug field synchronization (LB (Ben) Johnston)
* Fix: Prevent JS error when reverting the spinner on a submit button after a validation error (LB (Ben) Johnston)
* Fix: Prevent crash when comparing page revisions that include `MultipleChooserPanel` (Matt Westcott)
* Fix: Ensure that title and slug continue syncing after entering non-URL-safe characters (LB (Ben) Johnston)
* Fix: Ensure that title and slug are synced on keypress, not just on blur (LB (Ben) Johnston)
* Fix: Add a more visible active state for side panel toggle buttons (Thibaud Colas)
* Fix: Use custom dark theme colors for revision comparisons (Thibaud Colas)

5.0.1

~~~~~~~~~~~~~~~~~~

* Fix: Rectify previous fix for TableBlock becoming uneditable after save (Sage Abdullah)
* Fix: Ensure that copying page correctly picks up the latest revision (Matt Westcott)
* Fix: Ensure comment buttons always respect `WAGTAILADMIN_COMMENTS_ENABLED` (Thibaud Colas)
* Fix: Fix error when deleting a single snippet through the bulk actions interface (Sage Abdullah)
* Fix: Pass the correct `for_update` value for `get_form_class` in `SnippetViewSet` edit views (Sage Abdullah)
* Fix: Move comment notifications toggle to the comments side panel (Sage Abdullah)
* Fix: Remove comment button on InlinePanel fields (Sage Abdullah)
* Fix: Fix missing link to `UsageView` from `EditView` for snippets (Christer Jensen)
* Fix: Prevent lowercase conversions of IndexView column headers (Virag Jain)
* Fix: Fix various color issues in dark mode (Thibaud Colas)
* Docs: Update documentation for `log_action` parameter on `RevisionMixin.save_revision` (Christer Jensen)

5.0

~~~~~~~~~~~~~~~~

* Added support for Django 4.2
* Object usage information on deleting objects (Sage Abdullah)
* Support for SVG images (Joshua Munn, with sponsorship from YouGov)
* Custom validation support for StreamField (Matt Westcott)
* Add `WAGTAILIMAGES_EXTENSIONS` setting to restrict image uploads to specific file types (Aman Pandey, Ananjan-R)
* Update user list column level to `Access level` to be easier to understand (Vallabh Tiwari)
* Migrate `.button-longrunning` behavior to a Stimulus controller with support for custom label element & duration (Loveth Omokaro)
* Implement new simplified userbar designs (Albina Starykova)
* Add more Axe rules to the accessibility checker (Albina Starykova)
* Sort accessibility checker results by position on the page (Albina Starykova)
* Highlight elements with errors in accessibility checker (Albina Starykova)
* Add usage view for pages (Sage Abdullah)
* Copy page form now updates the slug field dynamically with a slugified value on blur (Loveth Omokaro)
* Ensure selected collection is kept when navigating from documents or images listings to add multiple views & upon upload (Aman Pandey, Bojan Mihelac)
* Keep applied filters when downloading form submissions (Suyash Srivastava)
* Messages added dynamically via JavaScript now have an icon to be consistent with those supplied in the page's HTML (Aman Pandey)
* Switch lock/unlock side panel toggle to a switch, with more appropriate confirmation message status (Sage Abdullah)
* Ensure that changed or cleared selection from choosers will dispatch a DOM `change` event (George Sakkis)
* Add the ability to disable model indexing by sett

pyup-bot avatar May 01 '24 13:05 pyup-bot