* Reorganise snippet admin URLs to avoid ambiguous paths
Snippet admin views allow for arbitrary strings as primary keys, and the current URL patterns don't adequately namespace these from reserved words like 'add' - for example, a snippet with the primary key 'add' would have an edit URL that collides with the add view at `/admin/snippets/foo/bar/add/`.
This is unlikely to come up in practice, but it does mean that our urlconf is more sensitive to ordering than it needs to be. Rearrange so that the verb (add, edit, delete) consistently comes before the pk, and add redirects to handle the legacy URLs.
* Release notes for #7208
Co-authored-by: Storm Heg <storm@stormheg.co>
* Add ability to register multiple hooks with register_temporarily
It's not possible to add multiple items in a ``with`` block in multiple
lines. So to register multiple hooks, you either need to put them all on
one line or add many nested ``with`` blocks.
This commit adds the ability to pass in a list of hooks into one call.
This works around the syntax error, but there's still no way to
represent this in a way that flake8 is happy with so I've added
``#noqa`` in a few places.
* Telepath set up for new sidebar
* unindent hooks.register_temporarily with blocks
Co-authored-by: Matt Westcott <matt@west.co.tt>
* Update wagtail/core/telepath.py
Co-authored-by: Matt Westcott <matt@west.co.tt>
Co-authored-by: Matt Westcott <matt@west.co.tt>
The tab code looks for the presence of a URL hash and calls showTab on a link with that href, without checking that the link A) actually exists and B) is a tab as identified by the data-tab attribute. As a result, non-tab-related uses of URL hashes (such as simply visiting /admin/#foo) throw a JS error.
Fixes#7146 - the root StreamField element is now matched by ID _and_ having a data-block attribute. (Duplicate IDs are invalid HTML and the 'proper' fix would be to add a global prefix to form fields, particularly since this problem isn't necessarily specific to StreamFields - but that would be a bigger breaking change.)
One of them checks has_content_changes before creating a revision. Think
it's worth checking this in all variants for consitency, and also so we
don't forget to update the logic if we ever move comments out of
content in the future.