diff --git a/docs/releases/5.1.md b/docs/releases/5.1.md index fa55e097bf..a96778cf48 100644 --- a/docs/releases/5.1.md +++ b/docs/releases/5.1.md @@ -56,31 +56,47 @@ Wagtail now supports [AVIF](https://en.wikipedia.org/wiki/AVIF), a modern image This feature was developed by Aman Pandey as part of the Google Summer of Code program and a [partnership with the Green Web Foundation](https://www.thegreenwebfoundation.org/news/working-with-the-wagtail-community-on-the-summer-of-code/) and Green Coding Berlin, with support from Dan Braghis, Thibaud Colas, Sage Abdullah, Arne Tarara (Green Coding Berlin), and Chris Adams (Green Web Foundation). +### Permissions consolidation + +This release includes a number of changes to permissions, to make them easier to use and maintain, as well as to improve performance. + +* Add initial implementation of `PagePermissionPolicy` (Sage Abdullah) +* Refactor `UserPagePermissionsProxy` and `PagePermissionTester` to use `PagePermissionPolicy` (Sage Abdullah, Tidiane Dia) +* Optimise queries in collection permission policies using cache on the user object (Sage Abdullah) +* Prevent 'choose' permission from being ignored when looking up 'choose', 'edit' and 'delete' permissions in combination (Sage Abdullah) +* Take user's permissions into account for image / document counts on the admin dashboard (Sage Abdullah) +* Deprecate `UserPagePermissionsProxy` (Sage Abdullah) +* Refactor GroupPagePermission to use Django's Permission model (Sage Abdullah) + +### Snippet enhancements + +we have made a number of improvements to snippets as part of [RFC 85: Snippets parity with ModelAdmin](https://github.com/wagtail/rfcs/pull/85), ahead of the deprecation of ModelAdmin contrib app. + +* Add the ability to export snippets listing via `SnippetViewSet.list_export` (Sage Abdullah) +* Add Inspect view to snippets (Sage Abdullah) +* Reorganise snippets documentation to cover customisations and optional features (Sage Abdullah) +* Add docs for migrating from ModelAdmin to Snippets (Sage Abdullah) +* Purge revisions of non-page models in `purge_revisions` command (Sage Abdullah) + ### Other features * 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 (e.g. [https://www.youtube.com/shorts/nX84KctJtG0](https://www.youtube.com/shorts/nX84KctJtG0)) 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](customising_group_views_permissions_order) (Daniel Kirkham) * Implement a new design for chooser buttons with better accessibility (Thibaud Colas) * Add [`AbstractImage.get_renditions()`](image_renditions_multiple) 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](extending_the_draftail_editor_advanced) (Thibaud Colas) - * Add the ability to export snippets listing via `SnippetViewSet.list_export` (Sage Abdullah) * Add support for adding [HTML `attrs`](panels_attrs) on `FieldPanel`, `FieldRowPanel`, `MultiFieldPanel`, and others (Aman Pandey, Antoni Martyniuk, LB (Ben) Johnston) * 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) * 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) ### Bug fixes @@ -115,8 +131,6 @@ This feature was developed by Aman Pandey as part of the Google Summer of Code p * Ensure that audit logs and revisions consistently use UTC and add migration for existing entries (Stefan Hammer) * Make sure "critical" buttons have enough colour contrast in dark mode (Albina Starykova) * Improve visibility of scheduled publishing errors in status side panel (Sage Abdullah) - * Prevent 'choose' permission from being ignored when looking up 'choose', 'edit' and 'delete' permissions in combination (Sage Abdullah) - * Take user's permissions into account for image / document counts on the admin dashboard (Sage Abdullah) * Avoid N+1 queries in users index view (Tidiane Dia) * Use a theme-agnostic color token for read-only panels support in dark mode (Thibaud Colas) * Ensure collapsible StreamBlocks expand as necessary to show validation errors (Storm Heg) @@ -133,14 +147,12 @@ This feature was developed by Aman Pandey as part of the Google Summer of Code p * Document how to add StructBlock data to a StreamField (Ramon Wenger) * Update ReadTheDocs settings to v2 to resolve urllib3 issue in linkcheck extension (Thibaud Colas) * Update documentation for `log_action` parameter on `RevisionMixin.save_revision` (Christer Jensen) - * Reorganise snippets documentation to cover customisations and optional features (Sage Abdullah) * Update color customisations guidance to include theme-agnostic options (Thibaud Colas) * Mark LTS releases in release note page titles (Thiago C. S. Tioma) * Revise main Getting started tutorial for clarity (Kevin Chung (kev-odin)) * Update the [deployment documentation](deployment_guide) page and remove outdated information (Jake Howard) * Add more items to performance page regarding pre-fetching images and frontend caching (Jake Howard) * Add docs for managing stored queries in `searchpromotions` (Scott Foster) - * Add docs for migrating from ModelAdmin to Snippets (Sage Abdullah) ### Maintenance @@ -155,12 +167,10 @@ This feature was developed by Aman Pandey as part of the Google Summer of Code p * Add tests to help with maintenance of theme color tokens (Thibaud Colas) * Split out a base listing view from generic index view (Matt Westcott) * Update type hints in admin/ui/components.py so that `parent_context` is mutable (Andreas Nüßlein) - * Deprecate `UserPagePermissionsProxy` (Sage Abdullah) * Optimise the Settings context processor to avoid redundantly finding a Site to improve cache ratios (Jake Howard) * Convert page listing to a class-based view (Matt Westcott) * Clean up page reports and type usage views to be independent of page listing views (Matt Westcott) * Refactor "More" dropdowns, locale selector, "Switch locales", page actions, to use the same dropdown component (Thibaud Colas) - * Refactor GroupPagePermission to use Django's Permission model (Sage Abdullah) * Convert the `CONTRIBUTORS` file to Markdown (Dan Braghis) * Move `django-filter` version upper bound to v24 (Yuekui) * Update Pillow dependency to allow 10.x, only include support for >= 9.1.0 (Yuekui)