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.
- 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
* docs clean up
- remove `important` call out - should all be replaced with `note` or `warning`
- remove unnecessary indent in code snippet for 3.0 release notes
* Update docs/releases/3.0.md
Co-authored-by: Dan Braghis <dan@zerolab.org>
- 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.
- relates to #9104
- Removed: .button-neutral, .button-strokeonhover and .hover-no.
- Replaced hardcoded font size, font weight values with theme variables.
- Removed overridden duplicate styles for .yes, .no and .bicolor.
- Merged a few styles under one class.
- Removed non-link button which was using span tag from styleguide, remove other unhelpful examples
This improves page responsiveness on first load, especially on pages with many images (eg images list in Wagtail admin)
* Lazy load thumbnails on modeladmin lists
* Update oembed photos to use lazy loading
* Use lazy loading for `MediaBlock`, the avatar in the sidebar and comments
* Just decode chooser images async
- Allow users to override the default attributes given to an image
- Update tests to account for new tags
- Add documentation for custom image attributes
- Recommend that loading=lazy & decoding=async be considered for performance in front-end sites