- Support for background tasks using
django-tasks
(Jake Howard) - Add search terms report (Noah van der Meer, Sage Abdullah)
- Add the ability to apply basic Page QuerySet optimizations to
specific()
sub-queries usingselect_related
&prefetch_related
(Andy Babic) - Increase
DATA_UPLOAD_MAX_NUMBER_FIELDS
in project template (Matt Westcott) - Stop invalid Site hostname records from breaking preview (Matt Westcott)
- Set sensible defaults for InlinePanel heading and label (Matt Westcott)
- Limit tags autocompletion to 10 items and add delay to avoid performance issues with large number of matching tags (Aayushman Singh)
- Add the ability to restrict what types of requests a Pages supports via
allowed_http_methods
(Andy Babic) - Allow plain strings in panel definitions as shorthand for
FieldPanel
/InlinePanel
(Matt Westcott) - Only allow selection of valid new parents within the copy Page view (Mauro Soche)
- Add
on_serve_page
hook to modify the serving chain of pages (Krystian Magdziarz, Dawid Bugajewski) - Add support for
WAGTAIL_GRAVATAR_PROVIDER_URL
URLs with query string parameters (Ayaan Qadri, Guilhem Saurel) - Add
get_avatar_url
hook to customise user avatars (James Harrington) - Set content security policy (CSP) headers to block embedded content when serving images and documents (Jake Howard, with thanks to Ali İltizar for the initial report)
- Add
page
as a third parameter to theconstruct_wagtail_userbar
hook (claudobahn) - Enable breadcrumbs in revisions compare view (Sage Abdullah)
- Skip loading of unused JavaScript to speed up 404 page rendering (Sage Abdullah)
- Replace l18n library with JavaScript Intl API for time zone options in Account view (Sage Abdullah)
- Use explicit label for defaulting to server language in account settings (Sage Abdullah)
- Add support for specifying an operator on
Fuzzy
queries (Tom Usher) - Remove support for Safari 15 (Thibaud Colas)
- Populate the ImageBlock alt text from the image’s default alt text when selecting a new image (Matt Westcott)
- Prevent main menu from re-rendering when clicking outside while the menu is closed (Sage Abdullah)
- Fill in the ImageBlock alt text from the image’s default alt text when converting from ImageChooserBlock (Cynthia Kiser)
- Make sure typing text at the bottom of the page editor always scrolls enough to keep the text into view (Jatin Bhardwaj)
- Add StreamField and InlinePanel interfaces support for drag-and-drop reordering of items (Thibaud Colas, Sage Abdullah)
- Add previews support for StreamField blocks inside the block picker (Sage Abdullah, Thibaud Colas)
- Fix: Improve handling of translations for bulk page action confirmation messages (Matt Westcott)
- Fix: Ensure custom rich text feature icons are correctly handled when provided as a list of SVG paths (Temidayo Azeez, Joel William, LB (Ben) Johnston)
- Fix: Ensure manual edits to
StreamField
values do not throw an error (Stefan Hammer) - Fix: Fix sub-menus within the main menu cannot be closed on mobile (Bojan Mihelac)
- Fix: Fix animation overflow transition when navigating through subpages in the sidebar page explorer (manu)
- Fix: Ensure form builder supports custom admin form validation (John-Scott Atlakson, LB (Ben) Johnston)
- Fix: Ensure form builder correctly checks for duplicate field names when using a custom related name (John-Scott Atlakson, LB (Ben) Johnston)
- Fix: Normalize
StreamField.get_default()
to prevent creation forms from breaking (Matt Westcott) - Fix: Prevent out-of-order migrations from skipping creation of image/document choose permissions (Matt Westcott)
- Fix: Use correct connections on multi-database setups in database search backends (Jake Howard)
- Fix: Ensure Cloudfront cache invalidation is called with a list, for compatibility with current botocore versions (Jake Howard)
- Fix: Show the correct privacy status in the sidebar when creating a new page (Joel William)
- Fix: Prevent generic model edit view from unquoting non-integer primary keys multiple times (Matt Westcott)
- Fix: Ensure comments are functional when editing Page models with
read_only
Fieldpanel
s in use (Strapchay) - Fix: Ensure the accessible labels and tooltips reflect the correct private/public status on the live link button within pages after changing the privacy (Ayaan Qadri)
- Fix: Fix empty
th
(table heading) elements that are not compliant with accessibility standards (Jai Vignesh J) - Fix: Ensure
MultipleChooserPanel
using images or documents work when nested within anInlinePanel
when no other choosers are in use within the model (Elhussein Almasri) - Fix: Ensure
MultipleChooserPanel
works after doing a search in the page chooser modal (Matt Westcott) - Fix: Ensure new
ListBlock
instances get created with unique IDs in the admin client for accessibility and mini-map element references (Srishti Jaiswal) - Fix: Return never-cache HTTP headers when serving pages and documents with view restrictions (Krystian Magdziarz, Dawid Bugajewski)
- Fix: Implement
get_block_by_content_path
onImageBlock
to prevent errors on commenting (Matt Westcott) - Fix: Add
aria-expanded
attribute to new column button onTypedTableBlock
to reflect menu state (Ayaan Qadri, Scott Cranfill) - Fix: Allow page models to extend base
Page
panel definitions without importingwagtail.admin
(Matt Westcott) - Fix: Fix crash when loading the dashboard with only the "unlock" or "bulk delete" page permissions (Unyime Emmanuel Udoh, Sage Abdullah)
- Fix: Improve deprecation warning for
WidgetWithScript
by raising it withstacklevel=3
(Joren Hammudoglu) - Fix: Correctly place comment buttons next to date / datetime / time fields. (Srishti Jaiswal)
- Fix: Add missing heading and breadcrumbs in Account view (Sage Abdullah)
- Fix: Reduce confusing spacing below StreamField blocks help text (Rishabh Sharma)
- Fix: Prevent redundant calls to
Site.find_for_request()
fromPage.get_url_parts()
(Andy Babic) - Fix: Prevent error on listings when searching and filtering by locale (Matt Westcott, Sage Abdullah)
- Fix: Add missing space in panels check warning message (Stéphane Blondon)
- Fix: Make sure alt text quality check is on by default as documented (Thibaud Colas)
- Docs: Move the model reference page from reference/pages to the references section as it covers all Wagtail core models (Srishti Jaiswal)
- Docs: Move the panels reference page from references/pages to the references section as panels are available for any model editing, merge panels API into this page (Srishti Jaiswal)
- Docs: Move the tags documentation to standalone advanced topic, instead of being inside the reference/pages section (Srishti Jaiswal)
- Docs: Refine the adding reports page so that common (page/non-page) class references are at the top and the full page only example has correct heading nesting (Alessandro Chitarrini)
- Docs: Add the
wagtail start
command to the management commands reference page (Damilola Oladele) - Docs: Refine the project template page sections and document common issues encountered when creating custom templates (Damilola Oladele)
- Docs: Refine titles, references and URLS to better align with the documentation style guide, including US spelling (Srishti Jaiswal)
- Docs: Recommend a larger
DATA_UPLOAD_MAX_NUMBER_FIELDS
when integrating Wagtail into Django (Matt Westcott) - Docs: Improve code highlighting and formatting for Python docstrings in core models (Srishti Jaiswal)
- Docs: Update all JavaScript inline scripts & some CSS inline style tags to a CSP compliant approach by using external scripts/styles (Aayushman Singh)
- Docs: Update usage of
mark_safe
toformat_html
for any script inclusions, to better avoid XSS issues from example code (Aayushman Singh) - Docs: Update documentation writing guidelines to encourage better considerations of security, accessibility and good practice when writing code examples (Aayushman Singh, LB (Ben) Johnston)
- Docs: Update documentation guidelines on writing links and API reference (Sage Abdullah)
- Docs: Replace absolute URLs with intersphinx links where possible to avoid broken links (Sage Abdullah)
- Docs: Update upgrading guide and release process to better reflect the current practices (Sage Abdullah)
- Docs: Document usage of custom validation for admin form pages when using
AbstractEmailForm
orAbstractForm
pages (John-Scott Atlakson, LB (Ben) Johnston) - Docs: Reword
BlogTagIndexPage
example for clarity (Clifford Gama) - Docs: Change title of blog index page in tutorial to avoid slug issues (Thibaud Colas)
- Docs: Fix
wagtailcache
andwagtailpagecache
examples to not use quotes for thefragment_name
(Shiv) - Docs: Update tutorial to reflect the move of the "Add child page" action to a top-level button in the header as a '+' icon (Clifford Gama)
- Docs: Fix link to
HTTPMethod
inPage.handle_options_request()
docs (Sage Abdullah) - Docs: Improve the Pages Theory page with added & more consistent section headings and admonitions to aid in readability (Clifford Gama)
- Docs: Fix non-functional link to the community guidelines in the Your first contribution page (Ankit Kumar)
- Docs: Introduce tags and filters by name in "Writing templates" docs (Clifford Gama)
- Docs: Add a new headless section to the documentation, incorporating parts of the 'are we headless' website content (Sævar Öfjörð Magnússon, Alex Fulcher)
- Docs: Fix Django HTML syntax formatting issue on the documents overview page (LB (Ben) Johnston)
- Docs: Separate virtual environment creation and activation steps in tutorial (Ankit Kumar)
- Docs: Update tutorial to use plain strings in place of
FieldPanel
/InlinePanel
where appropriate (Unyime Emmanuel Udoh) - Docs: Update example for customizing "p-as-heading" accessibility check without overriding built-in checks (Cynthia Kiser)
- Docs: Document
get_template
method on StreamField blocks (Matt Westcott) - Docs: Update accessibility considerations on alt text in light of contextual alt text improvements (Cynthia Kiser)
- Maintenance: Close open files when reading within utils/setup.py (Ataf Fazledin Ahamed)
- Maintenance: Avoid redundant
ALLOWED_HOSTS
check inSite.find_for_request
(Jake Howard) - Maintenance: Update
CloneController
to ensure thatadded
/cleared
events are not dispatched as cancelable (LB (Ben) Johnston) - Maintenance: Remove unused
uuid
UMD module as all code is now using the NPM module (LB (Ben) Johnston) - Maintenance: Clean up JS comments throughout codebase to be aligned to JSDoc where practical (LB (Ben) Johnston)
- Maintenance: Replace
eslint-disable no-undef
linter directives withglobal
comments (LB (Ben) Johnston) - Maintenance: Upgrade Node tooling to active LTS version 22 (LB (Ben) Johnston)
- Maintenance: Remove defunct oEmbed providers (Rahul Samant)
- Maintenance: Remove obsolete non-upsert-based code for Postgres search indexing (Jake Howard)
- Maintenance: Remove unused Rangy JS library (LB (Ben) Johnston)
- Maintenance: Update
PreviewController
usage to leverage Stimulus actions instead of callingpreventDefault
manually (Ayaan Qadri) - Maintenance: Various performance optimizations to page publishing (Jake Howard)
- Maintenance: Remove unnecessary DOM canvas.toBlob polyfill (LB (Ben) Johnston)
- Maintenance: Ensure Storybook core files are correctly running through Eslint (LB (Ben) Johnston)
- Maintenance: Add a new Stimulus
ZoneController
(w-zone
) to support dynamic class name changes & event handling on container elements (Ayaan Qadri) - Maintenance: Migrate jQuery class toggling & drag/drop event handling within the multiple upload views to the Stimulus ZoneController usage (Ayaan Qadri)
- Maintenance: Test project template for warnings when run against Django pre-release versions (Sage Abdullah)
- Maintenance: Refactor redirects create/delete views to use generic views (Sage Abdullah)
- Maintenance: Add JSDoc description, adopt linting recommendations, and add more unit tests for
ModalWorkflow
(LB (Ben) Johnston) - Maintenance: Add support for for a
delay
value inTagController
to debounce async autocomplete tag fetch requests (Aayushman Singh) - Maintenance: Add unit tests, Storybook stories & JSDoc items for the Stimulus
DrilldownController
(Srishti Jaiswal) - Maintenance: Enhance sidebar preview performance by eliminating duplicate asset loads on preview error (Sage Abdullah)
- Maintenance: Remove unused
LinkController
(w-link
) (Sage Abdullah) - Maintenance: Refactor settings
EditView
to make better use of genericEditView
(Sage Abdullah) - Maintenance: Add a new Stimulus
RulesController
(w-rules
) to support declarative conditional field enabling from other field values in a form (LB (Ben) Johnston) - Maintenance: Migrate the conditional enabling of fields in the image URL builder view away from ad-hoc jQuery to use the
RulesController
(w-rules
) approach (LB (Ben) Johnston) - Maintenance: Enhance the Stimulus
ZoneController
(w-zone
) to support inactive class and a mechanism to switch the mode based on data within events (Ayaan Qadri) - Maintenance: Use the Stimulus
ZoneController
(w-zone
) to remove ad-hoc jQuery for the privacy switch when toggling visibility of private/public elements (Ayaan Qadri) - Maintenance: Remove unused
is_active
&active_menu_items
fromwagtail.admin.menu.MenuItem
(Srishti Jaiswal) - Maintenance: Only call
openpyxl
at runtime to improve performance for projects that do not useReportView
,SpreadsheetExportMixin
andwagtail.contrib.redirects
(Sébastien Corbin) - Maintenance: Adopt the update value
mp
instead ofmm
for 'mystery person' as the default Gravatar if no avatar found (Harsh Dange) - Maintenance: Refactor search promotions views to use generic views and templates (Sage Abdullah, Rohit Sharma)
- Maintenance: Use built-in
venv
instead ofpipenv
in CircleCI (Sage Abdullah) - Maintenance: Add a new Stimulus
FormsetController
(w-formset
) to support dynamic formset insertion/deletion behavior (LB (Ben) Johnston) - Maintenance: Enable breadcrumbs by default on admin views using generic templates (Sage Abdullah)
- Maintenance: Refactor pages
revisions_revert
view to be a subclass ofEditView
(Sage Abdullah) - Maintenance: Move images and documents
get_usage().count()
call to view code (Sage Abdullah) - Maintenance: Upgrade sass-loader to resolve Sass deprecation warnings (Ayaan Qadri)