- Add
is_deferred_validationflag to support skipping custom validation when saving drafts (Daniel Kirkham) - Update project template Dockerfile to build dependencies in a separate stage (Brylie Oxley, Akshat Gupta)
- Add
include_rootparameter to admin pages API endpoint (Divyansh Mishra) - Add support for Flourish oEmbeds (Garrett Coakley)
- Add support for Heyzine oEmbeds (Baptiste Darthenay)
- Allow specifying
creation_form_classonChooserViewSetas a dotted path string (K Adithya) - Various user experience improvements to autosave and concurrent editing notifications (Sage Abdullah)
- Allow validation of required StreamField blocks to be deferred on saving drafts (Sage Abdullah)
- Add
WAGTAILDOCS_MAX_UPLOAD_SIZEsetting for specifying maximum document file size (Om Harsh) - Optimize combining of querysets in site history report (Alex Bridge)
- Add more informative error for
format-*operations on SVG images (Ankit Kumar) - Store preview data in new
FormStatemodel to improve compatibility with cookie-based sessions (Sage Abdullah) - Change StreamBlock options so groups are shown in declaration order of their blocks (Darshan Kerkar)
- Add
WAGTAILADMIN_PAGE_SEARCH_FILTER_BY_PERMISSIONSsetting to disable permission filtering on page searches (Matt Westcott) - Use choice label when displaying choice fields in
SnippetViewSet/ModelViewSet'slist_display(Srishti Jaiswal) - Add new content check
empty-meta-descriptionto validate meta description tags are not empty (Thibaud Colas) - Add
extractMetricsmethod toPreviewControllerto retrieve content metrics from the preview panel (Thibaud Colas) - Refine hover / focus styles for title field’s comment button (Srishti Jaiswal)
- Preserve "Collapse all" button state when switching between editor tabs (Raghad Dahi)
- Upgrade modelsearch to 1.3 (Matt Westcott)
- Implement checker error highlights within the preview panel (Thibaud Colas)
- Add
routablefullpageurltemplate tag (Pravin Kamble) - Add support for customizing page explorer views per page type using
PageViewSet(Sage Abdullah) - Enhance page content type usage view with custom listings and ability to create new pages (Sage Abdullah)
- Fix: Handle nested inline models when displaying object usage information (Sage Abdullah, Kacper Walęga, Tian Jie Wong)
- Fix: Avoid duplicate
get_object()DB query in API detail view (Siddheshwar Kadam) - Fix: Ensure
ImageBlockalt text populates on choosing a new image after unchecking decorative state (Pratham Jaiswal) - Fix: Set
verbose_name_pluralfor Query model in search promotions app (Saptami) - Fix: Truncate overly long task names in workflow admin view (Gaurav Takhi)
- Fix: Hide "Add child page" button when no child pages can be created as per
max_countormax_count_per_parent(Lasse Schmieding) - Fix: Prevent multiple child pages with
max_count_per_parentbeing moved under one parent (James Biggs) - Fix: Use POST instead of DELETE in Cloudflare Frontend Cache Backend (Tom Usher)
- Fix: Handle null values for title, author name or provider name in OEmbed responses (Baptiste Darthenay)
- Fix: Preserve original data types from
ChoiceBlockchoices in block values (Devarshi Mani Tripathi) - Fix: Fix translation sync logic for django-treebeard 5.0.2 (Matt Westcott)
- Fix: Correctly HTML-escape page title in approval/rejection notification emails (Matt Westcott)
- Fix: Correctly HTML-escape URL in photo type oembeds (Thibaud Colas)
- Fix: Ensure user with appropriate permissions can cancel a workflow task (Dan Braghis)
- Fix: Ensure "submit to workflow" menu item uses the workflow name when creating pages (Sage Abdullah)
- Fix: Better align page descriptions in add subpage views (Tibor Leupold)
- Fix: Correctly close the Pages menu panel when clicking sidebar search (Divyansh Mishra)
- Docs: Add documentation for the
filter_specparameter ofImageRenditionField(Soumya-codr) - Docs: Add guide for testing document upload forms (Wenli Tsai, Bhavesh Sharma)
- Docs: Document the
nested_default_fieldsattribute on API viewsets (Deepanshu Tevathiya) - Docs: Replace
httpwithhttpsin example URLs (Kunal Gupta) - Docs: Use
pathlib.Pathfor settings in "Integrating into Django" documentation (Kunal Gupta) - Docs: Clarify example of how to implement custom embed finders (Naman Sharma S)
- Docs: Add documentation for using the
ReferenceIndexAPI (Saptami) - Docs: Retitle documentation page for settings contrib module to "Settings models" (Karl Hobley)
- Docs: Fix typos and minor grammar issues (Kunal Gupta)
- Docs: Correct references to macOS and POSIX shell in tutorial (Ankit Kumar)
- Docs: Add PowerShell setup instructions to tutorial and correct method versus property terminology (Mustansir Dabhiya)
- Docs: Fix ordering of image rendition documentation (Seb Corbin)
- Docs: Remove references to now-addressed Django accessibility issues (Nirmal Kumar)
- Docs: Add content personalization how-to guide (Thibaud Colas)
- Docs: Add new package maintenance guidelines (Thibaud Colas)
- Docs: Fix use of
format_htmlininsert_global_admin_jsexample (Lasse Schmieding) - Docs: Mention front-end component names in Sphinx docs for discoverability (Aditya Kammati)
- Docs: Clarify the icon template tag is only for admin views (Aditya Kammati)
- Docs: Add documentation for generic
publishedandunpublishedsignals (Kunal Hemnani) - Docs: Improve organization of signals reference docs (Sage Abdullah)
- Docs: Add documentation for overriding the default user avatar image (Aviral Sapra)
- Maintenance: Removed support for Django 4.2
- Maintenance: Fix LocaleController test failures caused by differing timezone representations between Node versions (Saptami, Matt Westcott)
- Maintenance: Fix frontend coverage upload to Codecov (Sage Abdullah)
- Maintenance: Update semgrep to 1.150.0 (Pravin Kamble)
- Maintenance: Fix
hash_fileliketest case to account for line break differences on Windows (Mustansir Dabhiya) - Maintenance: Fix temporary file handling in redirect import tests on Windows (Mustansir Dabhiya)
- Maintenance: Fix use of platform-specific date formatting in edit handler tests (Mustansir Dabhiya)
- Maintenance: Bump Node.js to 24 (active LTS), upgrade Jest and Storybook (Sage Abdullah)
- Maintenance: Use Docker Elasticsearch images for GitHub CI instead of unofficial actions (Matt Westcott)
- Maintenance: Make LocaleController tests robust against changes to timezone data in Node (Sage Abdullah)
- Maintenance: Fix
PermissionErroron document serve tests under Windows (Matt Westcott) - Maintenance: Update JavaScript linting to ESLint 9, with updated linting rules and related fixes (Sage Abdullah)
- Maintenance: Replace Puppeteer with Playwright for integration tests (Sage Abdullah)
- Maintenance: Upgrade to latest Sass with changes for deprecated
ifsyntax (Sage Abdullah) - Maintenance: Add explicit
timeout-minutesto GitHub Actions workflow jobs (Ashutosh) - Maintenance: Upgrade Python tooling, testing, and docs dependencies (Sage Abdullah)
- Maintenance: Support skipping transaction unit tests with a tag (Sage Abdullah)
- Maintenance: Remove unreachable code in wagtail.py (Oluwagbeminiyi Agbedejobi)
- Maintenance: Upgrade django-treebeard dependency to 4.8-5.x (Samir Shah)
- Maintenance: Clean up JSDoc & ordering of values in
SwapController(LB (Ben Johnston)) - Maintenance: Refactor accessibility checker code to use generic content checker terminology (Thibaud Colas)
- Maintenance: Upgrade BeautifulSoup dependency to >=4.13.3 (Matt Westcott)
- Maintenance: Make sphinx_llms.txt extension optional when building docs (Sage Abdullah)
- Maintenance: Refactor handling of invalid form submissions in choosers (Sage Abdullah)
- Maintenance: Switch StreamField block rendering to use
w-block-prefixes for block type class names (Kalash Kumari Thakur)