This means we're not artificially forcing four different entity types into the same code path, and makes it possible to define new entity types outside of this module.
Also relax the eslint no-unused-vars to allow unused function parameters - having multiple classes following the same interface is a legitimate use of this.
* Added separate SidebarPanel component
* Copied explorer implementation
It's going to need a lot of changes
* Initialise the page explorer
* Move page explorer up a bit
* Hook into page explorer navigation
* Make navigate handler replace default button click behaviour
* Update page explorer to use SidebarPanel
* Add swipe in/out transition for page explorer
Since Wagtail 2.7, this is no longer true by default when using remote storage - only when `WAGTAILDOCS_SERVE_METHOD` is explicitly set to `serve_view`.
Improve the generation of `<title>` tags as follows:
* use `page` in preference to `self` (self has been semi-deprecated ever since we added jinja2 support)
* Retrieve current site with `{% wagtail_site %}` rather than page.get_site so that it works on non-pages such as 404s
* Fill in the 'title' block on 404.html
This allows us to test it without having to jump through hoops to make the rest of page-editor.js module-friendly, and moving the test module out of client/src/entrypoints means we don't duplicate it into wagtail/admin/static (where the test runner tries to run it again with broken imports)
This means we don't need a bogus "eslint-disable-next-line import/no-unresolved" directive when importing built CSS, which ends up breaking lint locally. Fixes #7177
We can't use pre_delete for this, as that would be sent after on_delete validation has already failed (https://code.djangoproject.com/ticket/6870), so define a new pre_validate_delete signal for this.
This prevents duplicated headings in places where the second-level index page has intro blurbs for each subsection (and also means we're not listing out long multi-section pages in full in the index, but given how big these indexes are that's probably not a bad thing).
Previously, this would fail, as `user_can_copy_obj` doesn't handle root
pages. Root pages also are special in a number of ways, and handling
copying is tricky and non-obvious.
If someone needs to show root pages (for some reason), they'll have to
special case them themselves.
* List all tasks in .PHONY
* Describe develop task in help output
* Remove undocumented test-all task, it just executes tox which isn't one of the testing requirements
* Fix coverage task
* Running tests is not quick