wagtail/docs/releases/2.3.rst
Matt Westcott bf870cecd3 Gracefully handle document links with missing ID attributes in rich text
Fixes #4791
Previously, our rich text conversion functions handled the case where a document link specified an ID which is not found in the database. However, they failed with a KeyError when the id attribute was missing completely; links of this second type would occur whenever a link of the first type was re-saved from the Draftail editor. The fix is two-fold:

1) Catch the "missing ID attribute" case - in this case, the resulting link will be missing both the href and id attributes
2) Update the handling of the "ID present but document not found" case so that the id attribute survives the round-trip to the editor and back. The final link as rendered on the front-end will still be an attribute-less <a> element, but the id will be retained in the database (and in the versions rendered within rich text editors) which may be useful for troubleshooting.
2018-10-10 12:54:52 +01:00

92 lines
5.8 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

==========================================
Wagtail 2.3 release notes - IN DEVELOPMENT
==========================================
.. contents::
:local:
:depth: 1
Wagtail 2.3 is designated a Long Term Support (LTS) release. Long Term Support releases will continue to receive maintenance updates as necessary to address security and data-loss related issues, up until the next LTS release (typically a period of 8 months).
What's new
==========
Added Django 2.1 support
~~~~~~~~~~~~~~~~~~~~~~~~
Wagtail is now compatible with Django 2.1. Compatibility fixes were contributed by Ryan Verner and Matt Westcott.
Other features
~~~~~~~~~~~~~~
* Added 'scale' image filter (Oliver Wilkerson)
* Added meta tag to prevent search engines from indexing admin pages (Karl Hobley)
* EmbedBlock now validates against recognised embed providers on save (Bertrand Bordage)
* Made cache control headers on Wagtail admin consistent with Django admin (Tomasz Knapik)
* Notification emails now include an "Auto-Submitted: auto-generated" header (Dan Braghis)
* Image chooser panels now show alt text as title (Samir Shah)
* Added ``download_url`` field to images in the API (Michael Harrison)
* Dummy requests for preview now preserve the HTTP Authorization header (Ben Dickinson)
Bug fixes
~~~~~~~~~
* Respect next param on login (Loic Teixeira)
* InlinePanel now handles relations that specify a related_query_name (Aram Dulyan)
* before_delete_page / after_delete_page hooks now run within the same database transaction as the page deletion (Tomasz Knapik)
* Seek to the beginning of image files when uploading, to restore compatibility with django-storages Google Cloud and Azure backends (Mikalai Radchuk)
* Snippet chooser modal no longer fails on snippet models with UUID primary keys (Sævar Öfjörð Magnússon)
* Restored localisation in date/time pickers (David Moore, Thibaud Colas)
* Tag input field no longer treats 'б' on Russian keyboards as a comma (Michael Borisov)
* Disabled autocomplete dropdowns on date/time chooser fields (Janneke Janssen)
* Split up ``wagtail.admin.forms`` to make it less prone to circular imports (Matt Westcott)
* Disable linking to root page in rich text, making the page non-functional (Matt Westcott)
* Pages should be editable and save-able even if there are broken page or document links in rich text (Matt Westcott)
Upgrade considerations
======================
``wagtail.admin.forms`` reorganised
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ``wagtail.admin.forms`` module has been split up into submodules to make it less prone to producing circular imports, particularly when a custom user model is in use. The following (undocumented) definitions have now been moved to new locations:
+----------------------------------------------+---------------------------------------+
| Definition | New location |
+==============================================+=======================================+
| LoginForm | wagtail.admin.forms.auth |
+----------------------------------------------+---------------------------------------+
| PasswordResetForm | wagtail.admin.forms.auth |
+----------------------------------------------+---------------------------------------+
| URLOrAbsolutePathValidator | wagtail.admin.forms.choosers |
+----------------------------------------------+---------------------------------------+
| URLOrAbsolutePathField | wagtail.admin.forms.choosers |
+----------------------------------------------+---------------------------------------+
| ExternalLinkChooserForm | wagtail.admin.forms.choosers |
+----------------------------------------------+---------------------------------------+
| EmailLinkChooserForm | wagtail.admin.forms.choosers |
+----------------------------------------------+---------------------------------------+
| CollectionViewRestrictionForm | wagtail.admin.forms.collections |
+----------------------------------------------+---------------------------------------+
| CollectionForm | wagtail.admin.forms.collections |
+----------------------------------------------+---------------------------------------+
| BaseCollectionMemberForm | wagtail.admin.forms.collections |
+----------------------------------------------+---------------------------------------+
| BaseGroupCollectionMemberPermissionFormSet | wagtail.admin.forms.collections |
+----------------------------------------------+---------------------------------------+
| collection_member_permission_formset_factory | wagtail.admin.forms.collections |
+----------------------------------------------+---------------------------------------+
| CopyForm | wagtail.admin.forms.pages |
+----------------------------------------------+---------------------------------------+
| PageViewRestrictionForm | wagtail.admin.forms.pages |
+----------------------------------------------+---------------------------------------+
| SearchForm | wagtail.admin.forms.search |
+----------------------------------------------+---------------------------------------+
| BaseViewRestrictionForm | wagtail.admin.forms.view_restrictions |
+----------------------------------------------+---------------------------------------+
The following definitions remain in ``wagtail.admin.forms``: ``FORM_FIELD_OVERRIDES``, ``DIRECT_FORM_FIELD_OVERRIDES``, ``formfield_for_dbfield``, ``WagtailAdminModelFormMetaclass``, ``WagtailAdminModelForm`` and ``WagtailAdminPageForm``.