This change alters the behavior of the sidebar "Snippets" menu such that
the snippet index view doesn't include snippet models that have been
configured with their own menu item.
Currently, the "Snippets" menu doesn't appear if all snippet models have
their own menu items; however, if some models do and some don't, the
snippets index view lists all of them, causing some duplication in the
UI which could be confusing for editors.
This commit changes this behavior so that "Snippets" is only used to
edit those snippet models that aren't editable elsewhere.
A new setting (WAGTAILSNIPPETS_MENU_SHOW_ALL) has been added to always
show the snippets menu and all snippets models. This setting will allow
for continuation of the current behavior for those users that desire it.
Closes issue 11340.
Prior to this change, it was inconsistent whether passing
a `widget` argument as an option to a create_<field>_field()
method would work or not (it might work, or might result in a
TypeError caused by the duplicate argument).
Leave other versionadded/versionchanged notes intact, as they relate to deprecated features that are not yet removed and should thus be left in place until 7.0.
* Allow page types to specify the request methods they support and block unsupported requests in serve()
* Use 'before_serve_page' hook to serve OPTIONS responses
* Add checks to RoutablePageMixin.serve() where the parent implementation is bypassed
* Rename check_http_method to check_request_method and actually use the return value
* Support Python 3.9 through to current approaches for `http` method strings
* Include documentation, docstrings & changelog entry
Return `cleaned_data` for more consistent subclassing.
Updated documentation with an example of adding custom page validation for form fields.
Add unit test to ensure that the documented usage of extending `WagtailAdminFormPageForm` works as expected.
Originally from #10375
This is necessary for rST docs, i.e. in docstrings and in eval-rst
blocks. Without this, Sphinx cannot seem to understand the role. See:
https://stackoverflow.com/questions/13387125
MyST-Parser seems to be smarter, it can figure out these custom
roles without having to register the types ourselves. This is evident in
the previous commits where I already use the :setting: role in markdown
docs.
Some link labels are changed to just the code part, because using Sphinx
roles for code objects (e.g. methods, attributes) would always format the
text as inline code.
It's currently impossible to customize the formatting of a link's text in
rST. See https://stackoverflow.com/questions/4743845
Fixes#11938
* Add `wagtail start` to the management commands reference
* Add detail on how to creating templates with the need to escape template syntax by using the verbatim tag
- Move model reference to directly under the references section, not the reference/pages section
- Move panel reference to directly under the references section, not the reference/pages section
- Merge panel API with panels reference pages
- Fix confusing heading levels in the page model recipes page
- Fix title in model reference to align with docs style guide
- Adopt US spelling for customize (panels) reference key
However, leave behind notes that mark settings/features that are deprecated but not yet removed, as this would be removing information that isn't in the main body of the text (and moving it out of a versionchanged note would make it harder to find when we come to remove it properly in 7.0).
Django provides an `HttpRequest.resolver_match` attribute [0] that
allows downstream code to inspect a request object to see how its URL
was resolved to a view.
Wagtail's RoutablePageMixin does its own sub-URL routing to call
different view functions on a page object, but the resolver result isn't
similarly made available.
This commit sets a new `routable_resolver_match` attribute on the
request object, akin to Django's `resolver_match`, that stores this
sub-URL routing information for downstream use.
Documentation has been updated appropriately (along with a couple of
other minor broken things in the RoutablePageMixin docs).
[0] https://docs.djangoproject.com/en/5.0/ref/request-response/#django.http.HttpRequest.resolver_match
* Accept alias for WAGTAILIMAGES_RENDITION_STORAGE
* Update wagtail.images.models.get_rendition_storage to handle the case when the WAGTAILIMAGES_RENDITION_STORAGE setting is given a storage alias (defined in the STORAGES setting). Preserve old behavior when a dotted module path or a Storage instance are given.
* Refactor and improve all tests related to the WAGTAILIMAGE_RENDITION_STORAGE setting.
* Update related documentation.
The new settings introduced in #11582 / #11536 only considered one use case of disabling the shared password option. However, we may want to allow for more complex configuration in the future in this area.
Ensure we can support potential future requirements such as #11640 with a more flexible structure for private pages & collections.
The following settings have been changed from boolean to dictionary values.
WAGTAIL_ALLOW_SHARED_PASSWORD_PAGE -> WAGTAIL_PRIVATE_PAGE_OPTIONS
WAGTAIL_ALLOW_SHARED_PASSWORD_COLLECTION -> WAGTAILDOCS_PRIVATE_COLLECTION_OPTIONS
Adds two new helper static methods:
- `Page.route_for_request()` - to find the page route, given a request
object and a URL path
- `Page.find_for_request()` - to find the page given, a request object and a URL
path
- Changed all British spellings to American spellings, in the Customizing admin templates section of the docs
- Transferred all British spellings in the usage guide and advanced topics section to American spellings
- Update a series of other pages to use the spelling cutomize in the file name
Implemented all feedbacks on the usage guide and advanced topics section