Use different icons for workflow timeline component, so the steps can be distinguished with other means than color (Sam Moran)
Co-authored-by: Thibaud Colas <thibaudcolas@gmail.com>
WagtailAdminFormPageForm.clean checks for duplicate fields by generating
a clean_name from a FormField's current label, catching duplicate labels.
However, once saved, a FormField's clean_name cannot change. It's
possible for clean_names to clash if a a field is renamed and add a new
field with the same name.
Updated duplicate check to take existing clean_name into account.
Refactored logic to avoid nested loops.
- changing object.id to object.pk and using `quote` to handle non-url-safe primary keys
- ensure we're using the quote/unquote consistently to handle non-url-safe primary keys
- creating new test for genericviews
- fixes #9205
- improving user_management tests
- refactoring test_authorised_with_add_permission, test_authorised_with_change_permission, and test_authorised_with_delete_permission into a single function
- Update wagtail/users/views/users.py
- Update wagtail/users/templates/wagtailusers/users/results.html
- Update wagtail/users/templates/wagtailusers/users/index.html (changing to generic/base.html)
- relates to #8622
Fixes #9230. When instantiating forms returned from `wagtail.admin.panels.get_form_for_model` (which are assumed to be WagtailAdminModelForm subclasses), always pass the for_user argument so that the form can incorporate custom logic that's dependent on the user object. Previously this was done for the main create/edit views, but not previews or revert.
- 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.