Skip to content

Releases: wagtail/wagtail

5.2rc1

19 Oct 22:40
Compare
Choose a tag to compare
5.2rc1 Pre-release
Pre-release
  • 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)
  • 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 tranlations submissions (LB (Ben) Johnston)
  • Improve filtering of audit logging based on the user's permissions (Stefan Hammer)
  • Fix: Ensure that StreamField's FieldBlocks 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 colours 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: 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 customise 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 toggl...
Read more

4.1.9

19 Oct 14:27
Compare
Choose a tag to compare
  • Fix: CVE-2023-45809: Disclosure of user names via admin bulk action views (Matt Westcott)

5.0.4

04 Oct 13:23
Compare
Choose a tag to compare
  • Maintenance: Relax Willow / Pillow dependency to allow use of current Pillow versions with security fixes (Dan Braghis)

4.1.8

28 Sep 11:40
Compare
Choose a tag to compare
  • Maintenance: Additionally update Pillow dependency to allow use of versions with security fixes (Dan Braghis)

4.1.7

27 Sep 13:12
Compare
Choose a tag to compare
  • Maintenance: Relax Willow dependency to allow use of current Pillow versions with security fixes (Dan Braghis)

5.1.2

25 Sep 13:07
Compare
Choose a tag to compare
  • 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.0.3

25 Sep 12:58
Compare
Choose a tag to compare
  • 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.1.1

14 Aug 14:32
30ee525
Compare
Choose a tag to compare
  • 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

01 Aug 13:53
1890e83
Compare
Choose a tag to compare
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 customised (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 customisation 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 optimised 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 unrecognised 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 colour 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)
  • 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 customisations and optional features (Sage Abdullah)
  • Docs: Update color customisations 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 initialisation 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 v24 (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 ne...
Read more

5.1rc1

18 Jul 15:17
15f652c
Compare
Choose a tag to compare
5.1rc1 Pre-release
Pre-release
  • 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 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 customised (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 customisation 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 optimised 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 unrecognised 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 colour 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)
  • 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 customisations and optional features (Sage Abdullah)
  • Docs: Update color customisations 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)
  • 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 initialisation 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 v24 (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...
Read more