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.
* "time_prefix" has been replaced by the boolean "show_time_prefix"
to only handle the single prefix "at ".
* It now always uses complete gettext strings to allow better
customization in each language.
* For dates older then the current date "user_display_name" is now
used correctly.
* Improved the tests to handle some of the missing cases.
(Mostly) fixes the issue described in https://github.com/wagtail/wagtail/pull/9170#issuecomment-1263592392. When deleting old references within `ReferenceIndex.create_or_update_for_object`, skip over any with a source content_type that does not match the currently-indexed object or any of its superclasses - these can be assumed to come from a more specific version of the object, with relations that we don't know about from inspecting the less-specific one.
This does have the side effect that once an object has been indexed in its more specific form, any invocations of create_or_update_for_object on the less-specific model will be over-cautious, and fail to delete records even if they legitimately refer to relations that exist on the base model - i.e. those references will stick around until the more specific model is indexed. This is a lesser bug than the original, though, and running `rebuild_references_index` will make the index consistent with the database state.
* writing test to making sure ordering is valid ordering based on the result of get_valid_orderings
* checking that the default ordering is used when ordering is invalid
* relates to #9114
- 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
Explicitly state that clicking Publish is required for the schedule to take effect.
Also document the edge cases for scheduled publishing when a page is scheduled to be unpublished
Multiple people on Slack support have asked "how do I fix this error" now, which suggests that the wording here needs improvement...
* change "is obsolete" to "is no longer required", to make it sound less "your code is broken" and more "here's an improvement you can make" (but also state that it'll be removed in a future release, to make it clear that you have to do it soomer or later)
* leave out the full module paths - they're probably coming across as internal tech gobbledegook rather than informative, and obscuring the word "Panel" which is the most important thing in the message
* link to the release note to clear up any remaining confusion