- add documentation for WAGTAILADMIN_BASE_URL
- ensure that WAGTAILADMIN_BASE_URL is used via a util so that it can fallback from request
- resolves #3248
- remove settings URL from pagination template - not required for query string URLs
- global font family on some elements set by normalize.css would override the desired font
- font stack was not correctly used across some elements
- fixes #8016
Currently bulk publishing raises an error if you include pages that
exist in the database without any revisions. This commit ensures
that a revision exists before the page is published.
Fixes issue 8187.
As per discussion on https://github.com/wagtail/wagtail/discussions/7732, the changes in the upcoming release (sidebar redesign, removal of hallo.js, module reorganisation) warrant a version bump to 3.0 if we're following semantic versioning.
Add system check for use_json_field in StreamField
Change system check level to Warning
Add use_json_field argument to StreamField in test models
Use RemovedInWagtail219Warning instead of a system check
Handle unpacked values in to_python when use_json_field is True
Duplicate models and tests for JSONField-based StreamField
Add basic tests for JSONField-based StreamField
Add json_field property in StreamField to unify JSONField usage
Add docs
Don't use destructuring for kwargs in deconstruct
Add versionchanged note to StreamField reference
* update github bug template to have status:Unconfirmed
- by default, ensure that all new bugs are raised with the label status:Unconfirmed
- for the bug template where 'hints' exist - use HTML comments to hide these
* docs - update issue tracking
- convert from RST to markdown
- add details about when to use Github discussions instead of an issue
- add details about bugs will be raised with the status:Unconfirmed
- add link to PR triage guide
- add links to release schedule & roadmap
- put less emphasis on milestones for new issue creation
- resolves #3746
- add a hidden & disabled first submit input so that ‘enter’ does not trigger submit
- allow the behaviour of the actual submit button to still work as expected
- intentionally HTML only solution as it is simpler and more accessible than JS override
This covers pages, snippets, ModelAdmin and settings. This assumes that the form is a subclass of PermissionedForm such as WagtailAdminModelForm - for pages and snippets this is documented as a requirement (https://docs.wagtail.org/en/stable/advanced_topics/customisation/page_editing_interface.html#customising-generated-forms); for settings it's undocumented (but would entail setting `base_form_class`, and from there it's implicit that the same rules as snippets apply).
For ModelAdmin, it's possible to set a custom form by overriding get_form_class. This isn't documented, but the tests from #2752 make use of this - so in case similar code exists in the wild, I've added an upgrade note.
- the original conversion to markdown happened around the same time as the MyST conversion
- this meant that the syntax was not in sync
- also run prettier over markdown for consistent formatting & whitespace
- see #8007
* Consistently set `aria-haspopup="menu"` for all sidebar menu items that have sub-menus (LB (Ben Johnston))
* Make sure `aria-expanded` is always explicitly set as a string in sidebar (LB (Ben Johnston))
* Use a button element instead of a link for page explorer menu item, for the correct semantics and behavior (LB (Ben Johnston))
- As this is only a dev/testing dependency, and declaring the dependencies that you use directly is likely standard knowledge
- if anyone does overlook it, it'll presumably fail in an obvious and easily fixed way
- see 8ac683ef5c (r68486362)
- this appears to be a point of confusion, where developers are unsure what this field does
- this update makes it more explicit that this field does not do anything, except the queryset usage, by default
All built-in choosers use the standard field_panel_field.html template - it's probably been this way since Wagtail 1.0, when choosers got their own Widget classes rather than just being HTML decoration around a HiddenInput. As a result, the additional template context they pass (e.g. self.object_type_name) is redundant. If any third-party chooser panels exist that do need them (which is unlikely, if they just copy the existing ones), they should override render_as_field themselves to pass whatever context they need.
fixes #6555,
Only the final unsaved FormField appears in the preview of a FormPage. As
FormBuilder adds fields to its formfields attribute using their
clean_name as the key, and FormField.clean_name isn't populated until
FormField.save is called, all unsaved fields are added to the
FormBuilder.formfields dict with the empty string as key. This solves
this by calling get_field_clean_name on the field before insertion
into formfields if clean_name hasn't been set yet.
The django-treebeard 4.3.x is not compatible with Django 4.x because of the dreaded ugettext alias removal problem. This makes sure that a proper django-treebeard version will be installed.
*IMPORTANT*: Please notice that django treebeard *does not* officially support django 4.x. However from my tests I have concludeded that it works fine after you install the version 4.5.x.
This:
- updates the pre-commit configuration and setup.py testing dependencies
- updates isort/flake8 configuration for black
- adds black linting to Makefile and CircleCI configuration
- updates editorconfig with the new line length (88) for py files
- updates python guidelines in docs
Co-authored-by: Thibaud Colas <thibaudcolas@gmail.com>
- `-apple-system, BlinkMacSystemFont` - These are used to target modern iOS Safari, macOS Safari, macOS Firefox and macOS Chrome's system fonts.
- ` 'Segoe UI', system-ui,` - These fonts target windows machines on Windows 7+ [reference](https://markdotto.com/2018/02/07/github-system-fonts/#the-stack). Having system-ui placed after Segoe UI allowed Segoe UI to take precedence when used on Windows machines set to Chinese ( Simplified ) language. There are some known language issues around `system-ui` being used: [This github article](https://infinnie.github.io/blog/2017/systemui.html). However, the purpose of `system-ui` [(reference here)](https://drafts.csswg.org/css-fonts-4/#valdef-font-family-system-ui) is to allow web content to integrate with the look and feel of the native OS. Which makes this font-family a good choice for other devices _if_ the problem is solved by putting Segoe UI first.
- `Roboto,` - This is our fallback font for androids devices. Having Segoe set before this allows windows to use its system default font even if you have installed Roboto for development reasons.
- `Helvetica Neue,` - This is a fallback for older macOS
- `Arial` - Using this to catch any of the very old Windows versions (shoutout windows 95)
- `sans-serif` - Our last resort to get a font without serifs
- ` 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';` - All the emoji's for the OS's mentioned above. 😁
- main_nav_css & main_nav_js were added when the new slim sidebar was being built
- with the legacy styles/js - there was little risk of there being conflicts
- with the new sidebar CSS, this sidebar bundle comes with a large duplicate of what is in core.css so we should add it before the hooks run so that hook scan override if needed as per our documentation
- this is a temporary fix for #7943 - ideally we should avoid sidebar.scss bundle duplicating so much of the core css
- note: JS is lower risk but should follow the same convention
- Bulk Actions were failing for objects with id > 999 in projects with
- Django settings `USE_L10N` and `USE_THOUSAND_SEPARATOR` enabled.
- Test bulk action checkboxes handle USE_THOUSAND_SEPARATOR setting
- Install Prettier
- Add Prettier configuration
- Add git-blame-ignore-revs
- Clean up .editorconfig indent_style definition
- Clean up .editorconfig space definitions
- Add documentation for Prettier
- Add missing Prettier run-scripts
- Disable Prettier formatting in CI for now
- Remove gulp code and docs
- Add base CSS & SCSS processing in Webpack
- Make sure Sass files use paths that can be resolved by Webpack
- Use faster source map generation
- Clean up build scripts
- Make sure Storybook can process Sass
- Switch away from web fonts (more work needed)
As of Django 4.0 BaseDeleteView has switched to a new implementation based on FormMixin where custom deletion logic now lives in form_valid:
https://docs.djangoproject.com/en/4.0/releases/4.0/#deleteview-changes
Here we copy the Django 4.0 implementation for use on older Django versions to keep everything consistent, and provide a delete_action method for views that override wagtail.views.generic.models.DeleteView further (e.g. the workflow deactivation views).
Small but important changes:
- We should always be testing in Windows, even if MS Edge is now available on macOS as well.
- We should make a better effort to support older Safari releases, as Safari is tied to OS updates, and device management isn’t always keeping up with releases
Add tests
Use f-string for edit_url
Redirect to collection listing after deleting an item from it
Use current url to avoid losing information(e.g tags)
Update tests
* Revert "Release notes for #7761"
This reverts commit b062c22331.
* Revert "Fix incorrect logging of move VS reorder"
This reverts commit 0086c7ba7a.
* Revert "Update docs"
This reverts commit e602990e39.
* Revert "Add tests"
This reverts commit b10e545b14.
* Revert "Prevent the 'old_record' query being unnecessary triggered by page.move()"
This reverts commit 4fed675d7a.
* Revert "Implement the page_url_path_changed signal"
This reverts commit 2f86eda372.
* Revert "Release notes for #7776"
This reverts commit a7e58e9c67.
* Revert "Tests for #7776"
This reverts commit 1f5734ce3f.
* Revert "Add PageQuerySet.ever_live() and PageQueryset.never_live() filters"
This reverts commit d8c2e33505.
* Revert "Release notes for #7774"
This reverts commit e9eadb65c7.
* Revert "Docs for #7774"
This reverts commit d00a4c8a65.
* Revert "Automatically create redirects for when pages are moved or have their slug updated"
This reverts commit 31a7b11932.
The /models pattern is what is documented in the Sketchfab oEmbed docs.
The /3d-models pattern is what you'd get by copying and pasting the URL from browsing the site.
https://sketchfab.com/developers/oembed