- fixes #9195
- header button on edit page & page listing - unpublish now correctly includes the next url (was missing on page listing previously)
- header button on edit page - delete button does not include next url (as this would be the edit page for what was deleted)
- adds more robust unit tests for the page listing & page header more hooks, including separating the tests out to separate classes
This basically uses the same code as django uses for the search form in
its ModelAdmin, to retain the current query params (template
admin/search_form.html).
Fixes #6006
As of e03cdf76e7, formfield_callback can be set through ModelForm.meta. This new mechanism was overriding our metaclass hacking for WagtailAdminModelForm to accomplish the same thing, and as a result the custom Wagtail admin form fields were reverting to the Django defaults. We therefore need to update WagtailAdminModelForm to use the new mechanism when on Django >=4.2.
- Also added test for the use case of a combined search request.
- Resolve issue where searches with a tag and a query param in the image listing would result in an `FilterFieldError`.
- This combined search will not be functional (will not combine as yet) but will not error.
- Fixes #9160
- add pointer-events: none; to disabled buttons (useful when using with links)
- added warnings about using disabled as a class instead of disabled as an attribute on elements
* Added note in 4.1.md for .button-secondary not being compatible with .no/.serious
* Added comment for button-secondary class not being compatible with serious/no classes
* Fixed message button-secondary hover states
* Relates to #8790
- adding a multiple arg test for classnames template
- adding a single arg test for classnames template
- adding a falsy arg test for classnames template
- adding args with extra whitespace test for classnames template
- resolves #9103
Fixes #9118. Permission policies can now be initialised by passing a model string rather than a class; wagtail.admin.widgets.chooser.BaseChooser had this capability already. Between these, we can adjust wagtail.documents.views.chooser so that no models need to be imported at module load time. As a result, definitions that depend on this module (such as DocumentChooserBlock) can now be included in the same models file as a custom document model, without causing a circular import.