=========================================== Wagtail 2.10 release notes - IN DEVELOPMENT =========================================== .. contents:: :local: :depth: 1 What's new ========== Search query expressions ~~~~~~~~~~~~~~~~~~~~~~~~ Search queries can now be constructed as structured expressions in the manner of the Django ORM's ``Q()`` values, allowing for complex queries that combine individual terms, phrases and boosting. A helper function ``parse_query_string`` is provided to convert "natural" queries containing quoted phrases into these expressions. For complete documentation, see :ref:`wagtailsearch_complex_queries`. This feature was developed by Karl Hobley and sponsored by `The Motley Fool `_. Redirect importing ~~~~~~~~~~~~~~~~~~ Redirects can now be imported from an uploaded CSV, TSV, XLS or XLSX file. This feature was developed by Martin Sandström. Other features ~~~~~~~~~~~~~~ * Added ``webpquality`` and ``format-webp-lossless`` image filters and ``WAGTAILIMAGES_WEBP_QUALITY`` setting. See :ref:`output_image_format` and :ref:`image_quality` (Nikolay Lukyanov) * Reorganised Dockerfile in project template to follow best practices (Tomasz Knapik, Jannik Wempe) * Added filtering to locked pages report (Karl Hobley) * Adds ability to view a group's users via standalone admin URL and a link to this on the group edit view (Karran Besen) * Redirect to previous url when deleting/copying/unpublish a page and modify this url via the relevant hooks (Ascani Carlo) * ``AbstractEmailForm`` will use ``SHORT_DATETIME_FORMAT`` and ``SHORT_DATE_FORMAT`` Django settings to format date/time values in email (Haydn Greatnews) * ``AbstractEmailForm`` now has a separate method (``render_email``) to build up email content on submission emails. See :ref:`form_builder_render_email`. (Haydn Greatnews) * Add ``pre_page_move`` and ``post_page_move`` signals. (Andy Babic) * Add ability to sort search promotions on listing page (Chris Ranjana, LB (Ben Johnston)) * Upgrade internal JS tooling; Node v10, Gulp v4 & Jest v23 (Jim Jazwiecki, Kim LaRocca, Thibaud Colas) * Add ``after_publish_page``, ``before_publish_page``, ``after_unpublish_page`` & ``before_unpublish_page`` hooks (Jonatas Baldin, Coen van der Kamp) * Add convenience ``page_url`` shortcut to improve how page URLs can be accessed from site settings in Django templates (Andy Babic) * Show more granular error messages from Pillow when uploading images (Rick van Hattem) * Add ordering to ``Site`` object, so that index page and ``Site`` switcher will be sorted consistently (Coen van der Kamp, Tim Leguijt) * Add Reddit to oEmbed provider list (Luke Hardwick) * Remove sticky footer on small devices, so that content is not blocked and more easily editable (Saeed Tahmasebi) * Add ability to replace the default Wagtail logo in the userbar, via ``branding_logo`` block (Meteor0id) * Add ``alt`` property to ``ImageRenditionField`` api representation (Liam Mullens) * Add ``purge_revisions`` management command to purge old page revisions (Jacob Topp-Mugglestone, Tom Dyson) * Render the Wagtail User Bar on non ``Page`` views (Caitlin White, Coen van der Kamp) * Add ability to define ``form_classname`` on ``ListBlock`` & ``StreamBlock`` (LB (Ben Johnston)) * Add documentation about how to use ``Rustface`` for image feature detection (Neal Todd) * Improve performance of public/not_public queries in ``PageQuerySet`` (Timothy Bautista) * Add ``add_redirect`` static method to ``Redirect`` class for programmatic redirect creation (Brylie Christopher Oxley, Lacey Williams Henschel) * Add reference documentation for ``wagtail.contrib.redirects`` See :ref:`redirects`. (LB (Ben Johnston)) * ``bulk_delete`` page permission is no longer required to move pages, even if those pages have children (Robert Rollins, LB (Ben Johnston)) * Add ``after_edit_snippet``, ``after_create_snippet`` and ``after_delete_snippet`` hooks and documentation (Kalob Taulien) * Improve performance of empty search results by avoiding downloading the entire search index in these scenarios (Lars van de Kerkhof, Coen van der Kamp) * Replace ``gulp-sass`` with ``gulp-dart-sass`` to improve core development across different platforms (Thibaud Colas) * Add SVG icons to resolve accessibility and customisation issues and start using them in a subset of Wagtail's admin (Coen van der Kamp, Scott Cranfill, Thibaud Colas) * Switch userbar and header H1s to use SVG icons (Coen van der Kamp) * Remove markup around rich text rendering by default, provide a way to use old behaviour via ``wagtail.contrib.legacy.richtext``. See :ref:`legacy_richtext`. (Coen van der Kamp, Dan Braghis) * Add ``WAGTAIL_TIME_FORMAT`` setting (Jacob Topp-Mugglestone) * Apply title length normalisation to improve ranking on PostgreSQL search (Karl Hobley) * Allow omitting the default editor from ``WAGTAILADMIN_RICH_TEXT_EDITORS`` (Gassan Gousseinov) * Disable password auto-completion on user creation form (Samir Shah) * Upgrade jQuery to version 3.5.1 to reduce penetration testing false positives (Matt Westcott) * Add ability to extend ``EditHandler`` without a children attribute (Seb Brown) * ``Page.objects.specific`` now gracefully handles pages with missing specific records (Andy Babic) * StreamField 'add' buttons are now disabled when maximum count is reached (Max Gabrielsson) * Use underscores for form builder field names to allow use as template variables (Ashia Zawaduk, LB (Ben Johnston)) * Deprecate use of unidecode within form builder field names (Michael van Tellingen, LB (Ben Johnston)) Bug fixes ~~~~~~~~~ * Ensure link to add a new user works when no users are visible in the users list (LB (Ben Johnston)) * ``AbstractEmailForm`` saved submission fields are now aligned with the email content fields, ``form.cleaned_data`` will be used instead of ``form.fields`` (Haydn Greatnews) * Removed ARIA ``role="table"`` from TableBlock output (Thibaud Colas) * Set Cache-Control header to prevent page preview responses from being cached (Tomas Walch) * Accept unicode characters in slugs on the "copy page" form (François Poulain) * Support IPv6 domain (Alex Gleason, Coen van der Kamp) * Remove top padding when ``FieldRowPanel`` is used inside a ``MultiFieldPanel`` (Jérôme Lebleu) * Add Wagtail User Bar back to page previews and ensure moderation actions are available (Coen van der Kamp) * Fix issue where queryset annotations were lost (e.g. ``.annotate_score()``) when using specific models in page query (Dan Bentley) * Prevent date/time picker from losing an hour on losing focus when 12-hour times are in use (Jacob Topp-Mugglestone) * Strip out HTML tags from ``RichTextField`` & ``RichTextBlock`` search index content (Timothy Bautista) * Avoid using null on string ``Site.site_name`` blank values to avoid different values for no name (Coen van der Kamp) * Fix deprecation warnings on Elasticsearch 7 (Yngve Høiseth) * Remove use of Node.forEach for IE 11 compatibility in admin menu items (Thibaud Colas) * Fix incorrect method name in SiteMiddleware deprecation warning (LB (Ben Johnston)) * ``wagtail.contrib.sitemaps`` no longer depends on SiteMiddleware (Matt Westcott) * Purge image renditions cache when renditions are deleted (Pascal Widdershoven, Matt Westcott) * Image / document forms now display non-field errors such as ``unique_together`` constraints (Matt Westcott) Upgrade considerations ====================== Removed support for Python 3.5 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Python 3.5 is no longer supported as of this release; please upgrade to Python 3.6 or above before upgrading Wagtail. ``
`` wrappers removed from rich text ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In previous releases, rich text values were enclosed in a ``
`` element when rendered; this element has now been removed. To restore the old behaviour, see :ref:`legacy_richtext`. Hooks functions ``register_page_listing_buttons`` & ``register_page_listing_more_buttons`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Page listing button hook functions now accept an additional kwarg ``next_url``. Please update your hook function definitions to accept the new ``next_url`` kwarg.