kopia lustrzana https://github.com/wagtail/wagtail
125 wiersze
9.1 KiB
Markdown
125 wiersze
9.1 KiB
Markdown
# 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
|