These two tests are used when checking if a new page type can be created
under a page instance, or if an existing page type can move under a page
instance.
Iterating over get_page_models means that these will be visited once
per superclass. To avoid this, we filter the page list to those exactly
matching the page class. This is done via a new `exact_type` method
on `PageQuerySet`.
The `wagtailsettings` module is useful enough that it should be included
in the Wagtail contrib section, to make it available to all Wagtail
developers.
All the code has been given a once-over to make sure it is nice and
polished before being copied in. As such, this is not a direct copy of
the `wagtailsettings` module. It should be backwards compatible though,
excepting the new location.
It has been moved to `wagtail.contrib.settings`, following the naming
scheme set out in #1504.
Documentation has been concatenated in to a single page, and added to
the contrib reference section.
All `.. code::` instances have been changed to use `.. code-block::`,
and have been properly formatted. The syntax names have been normalised,
so all django templates use the `html+django` syntax, shell commands use
`sh`, and plain text uses `text`.
`is_creatable` better reflects what it is used for, and stops any
confusion between Wagtail's `is_abstract` and Django's `Meta.abstract`.
`is_creatable` takes in to account `Meta.abstract` now, so developers
will no longer need to set both `is_abstract` and `Meta.abstract`.
Documentation for the new attribute has been added, as well as tests.
These were introduced in 9d7d016b7c to support menu item highlighting, but this mechanism was superseded by #1186. There's no sign of any code still using these classnames, and any code that relies on them would be liable to fail on non-English-language sites anyhow (since the menu item name is derived from the label by default, and the label is a translatable string).