wagtail/docs/releases/7.1.md

125 wiersze
9.1 KiB
Markdown
Czysty Wina Historia

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Wagtail 7.1 release notes - IN DEVELOPMENT
_Unreleased_
```{contents}
---
local:
depth: 1
---
```
## What's new
### Site setting permissions
The [](../reference/contrib/settings) app now allows permission over site settings to be granted on a per-site basis. This makes it possible to give non-superuser accounts full control over the configuration of an individual site. This feature was developed by Matt Westcott.
### Other features
* Add iHeart oEmbed provider (Storm Heg)
* Add locale-aware `NumberColumn` to display numbers in universal listings (Baptiste Mispelon)
* Add ability for the header breadcrumbs to save their open/closed state across navigation & refresh (Srishti Jaiswal)
* Render listing buttons as template components (Sage Abdullah)
* Define default `GenericRelations` for `RevisionMixin` and `WorkflowMixin`, to avoid issues with deletion cascades (Sage Abdullah)
* Update Twitter oEmbed provider to recognize x.com links (manu)
* Document and relocate the `init_new_page` signal (Maciek Baron)
* Use `requests` to access oEmbed endpoints, for more robust SSL certificate handling (Matt Westcott)
* Ensure that bulk deletion views respect protected foreign keys (Sage Abdullah)
* Add minimum length validation for `RichTextBlock` and `RichTextField` (Alec Baron)
* Allow `SnippetChooserBlock`'s `icon` to take precedence over `SnippetViewSet.icon` (Matt Westcott)
* Allow searching the users index on custom fields (Paul Craciunoiu, Sage Abdullah)
* Support `preserve-svg` in Jinja2 image tags (Vishesh Garg)
* Recognize `preserve-svg` as a filter when calling `Image.get_rendition` directly (Richard Allen)
* Add support for `preserve-svg` for `Image.get_renditions`, picture, and srcset_image tags (Matt Westcott)
* Include `TypedTableBlock` content when indexing for search (Charan T M)
* Preserve query parameters when redirecting from the API `find` view to the `detail` view (Andrew Hosgood)
* Add 'Edit' button to success message after copying page (Dhruvi Patel)
* Restrict file dialog in multiple image uploader to the allowed image file types (Mustopha Mubarak O)
* Raise clear error when non-StreamBlock is used as top-level block in StreamField (Clifford Gama)
* Refactor userbar rendering to better support headless websites (Sage Abdullah)
* Add type-to-confirm step when deleting large numbers of pages through bulk actions (Rachel Smith)
* Add [`NoFutureDateValidator`](date_field_validation) to validate against dates in the future (Talha Rizwan)
* Extract separate `background_position_x` and `background_position_y` properties from `AbstractRendition.background_position_style` (Chiemezuo Akujobi)
* Add support for translated string concatenation in the locale selector when switching between a model's language in the admin (Matt Westcott, Ellie Walsh-O'Neill)
* Switch to check / cross icons for users active state in users listing (Sage Abdullah)
* Add a keyboard shortcut to easily toggle the visibility of the minimap side panel (Dhruvi Patel)
* Add API for extracting preview page content (Sage Abdullah)
### Bug fixes
* Handle lazy translation strings as `preview_value` for `RichTextBlock` (Seb Corbin)
* Fix handling of newline-separated choices in form builder when using non-windows newline characters (Baptiste Mispelon)
* Ensure `WAGTAILADMIN_LOGIN_URL` is respected when logging out of the admin (Antoine Rodriguez, Ramon de Jezus)
* Fix behavior of `ViewSet.inject_view_methods` with multiple methods (Gorlik)
* Preserve query strings in URLs submitted to CloudFront for invalidation (Jigyasu Rajput)
* Handle non-JSON-safe fields in `exclude_fields_in_copy` (Matt Westcott)
* Allow upload of AVIF images through image chooser on Firefox (Matt Westcott)
* Accept any string beginning with 'y' as confirmation for `import_redirects` command (Matt Westcott)
* Fix error when accessing the submissions listing view with a non-form page (Sage Abdullah)
* Replace inline styles with CSS classes in HTML files (Srishti Jaiswal)
* Refactor remaining inline styles to avoid unsafe-inline style-src CSP (Chiemezuo Akujobi)
* Avoid breaking words in listing table cells unless specifically enabled (Ziyao Yan)
* Ensure that "all items in listing" option on image / document bulk actions respects user permissions (Alex Morega)
* Adjust accessibility dialog position based on userbar position (Anees Asghar, Sage Abdullah)
* Correctly handle ordering API results by mixed ascending and descending order (Rohit Sharma, Mahmoud Nasser)
* Ensure that draft changes to an editable `first_published_at` field are preserved on reloading (Talha Rizwan)
* Remove ngram parser on MySQL that prevented autocomplete search from returning results (Vince Salvino)
* Only enable ManifestStaticFilesStorage in production settings, to aid test running (M. Sumair Khokhar)
* Update `BooleanColumn` icons so they can be distinguished without relying on color (Sage Abdullah)
* Do not delete default homepage by ID in home app migration (Matt Westcott)
* Update the start project template to align with Django's recommendation to have the `django.middleware.security.SecurityMiddleware` first (Brylie Christopher Oxley)
* Ensure keyboard usage will correctly focus on new comments, including replies, when the side panel is open or closed (Dhruvi Patel)
* Handle `help_text` kwarg in `FloatBlock` (Nick Smith)
### Documentation
* Add missing tag library imports to footer template code in tutorial (Dimaco)
* Improve documentation around securing user-uploaded files (Jake Howard)
* Introduce search_fields in a dedicated tutorial section instead of the introduction (Matt Westcott)
* Add note about PDF XSS to security page (Matt Westcott)
* Add documentation for how to [group blocks within the StreamField picker](block_grouping) (Gaurav Verma)
### Maintenance
* Refactor `get_embed` to remove `finder` argument which was only used for mocking in unit tests (Jigyasu Rajput)
* Simplify handling of `None` values in `TypedTableBlock` (Jigyasu Rajput)
* Remove squash.io configuration (Sage Abdullah)
* Use `utf8mb4` charset and collation for MySQL test database (Sage Abdullah)
* Add `django.contrib.postgres` to test settings `INSTALLED_APPS` (Sage Abdullah)
* Add integrity & resolved checksums to package-lock.json (Sylvain Fankhauser)
* Replace `SlugController` with more generic and reusable `CleanController` (LB (Ben) Johnston)
* Remove outdated nginx / uWSGI example config files from `/etc` (LB (Ben) Johnston)
* Use browser built-in `EventTarget` instead of `events.EventEmitter` from Webpack (Sage Abdullah)
## Upgrade considerations - changes affecting all projects
## Upgrade considerations - deprecation of old functionality
## Upgrade considerations - changes affecting Wagtail customizations
### Deprecation of `PageListingButton`, `SnippetListingButton`, and `UserListingButton`
The `PageListingButton`, `SnippetListingButton`, and `UserListingButton` classes have been deprecated in favour of the generic `ListingButton` and `Button` classes.
The `PageListingButton` class was previously documented as part of the [`register_page_listing_buttons`](register_page_listing_buttons) hook. If you used this hook to add buttons to the page listing, you should now replace `wagtail.admin.widgets.PageListingButton` with `wagtail.admin.widgets.ListingButton`. Using the `PageListingButton` class will continue to work for now, but will raise a deprecation warning.
The `SnippetListingButton` and `UserListingButton` classes were previously documented as part of the [`register_snippet_listing_buttons`](register_snippet_listing_buttons) and [`register_user_listing_buttons`](register_user_listing_buttons) hooks, respectively. If you used these hooks to add buttons to the snippet or user listing, you should now replace `wagtail.snippets.widgets.SnippetListingButton` and `wagtail.users.widgets.UserListingButton` with one of the following:
- Use `wagtail.admin.widgets.Button` if you want the button to appear as an item inside the "More" actions dropdown in the listing.
- Use `wagtail.admin.widgets.ListingButton` if you want the button to appear as a top-level button in the listing.
Using the `SnippetListingButton` or `UserListingButton` classes will continue to work for now, but will raise a deprecation warning.
The `PageListingButton`, `SnippetListingButton`, and `UserListingButton` classes will be removed in a future release.
### Using `ListingButton` in `IndexView.get_list_more_buttons` now renders the button as a top-level button
If you have overridden the undocumented `get_list_more_buttons` method on a generic `IndexView` subclass (e.g. for a `ModelViewSet`) and used the `ListingButton` class to add buttons to the "More" actions dropdown, these buttons will now be rendered as top-level buttons in the listing. If you want the buttons to appear inside the "More" actions dropdown, you should use the `Button` class instead.
### `init_new_page` moved to `wagtail.signals`
The [](init_new_page_signal) signal, previously defined in `wagtail.admin.signals`, has now been moved to `wagtail.signals`. Any import lines referencing the old location need to be updated.
## Upgrade considerations - changes to undocumented internals