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.
* 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)
### 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.
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.