Wagtail 2.8 release notes - IN DEVELOPMENT

What’s new

Other features

  • Removed leftover Python 2.x compatibility code (Sergey Fedoseev)
  • Combine flake8 configurations (Sergey Fedoseev)
  • Improved diffing behavior for text fields (Aliosha Padovani)
  • Improve contrast of disabled inputs (Nick Smith)
  • Added get_document_model_string function (Andrey Smirnov)
  • Added support for Cloudflare API tokens for frontend cache invalidation (Tom Usher)
  • Cloudflare frontend cache invalidation requests are now sent in chunks of 30 to fit within API limits (Tom Usher)
  • Added ancestors field to pages endpoint in admin API (Karl Hobley)
  • Removed Django admin management of Page & Site models (Andreas Bernacca)
  • Cleaned up Django docs URLs in documentation (Pete Andrew)
  • Add StreamFieldPanel to available panel types in documentation (Dan Swain)
  • Add {{ block.super }} example to ModelAdmin customisation in documentation (Dan Swain)
  • Add ability to filter image index by a tag (Benedikt Willi)
  • Add formal support for nested InlinePanels (Matt Westcott)

Bug fixes

  • Rename documents listing column ‘uploaded’ to ‘created’ (LB (Ben Johnston))
  • Submenu items longer then the page height are no longer broken by the submenu footer (Igor van Spengen)
  • Unbundle the l18n library as it was bundled to avoid installation errors which have been resolved (Matt Westcott)
  • Prevent error when comparing pages that reference a model with a custom primary key (Fidel Ramos)
  • Moved get_document_model location so it can be imported when Models are not yet loaded (Andrey Smirnov)
  • Fixed incorrect HTML escaping of Jinja2 form templates for StructBlocks (Brady Moe)
  • All templates with wagtailsettings and modeladmin now use block.super for extra_js & extra_css (Timothy Bautista)
  • Layout issue when using FieldRowPanel with a heading (Andreas Bernacca)
  • file_size and file_hash not updated when Document file changed (Andreas Bernacca)

Upgrade considerations

Removed support for Django 2.0

Django 2.0 is no longer supported as of this release; please upgrade to Django 2.1 or above before upgrading Wagtail.

API endpoint classes have moved

For consistency with Django REST Framework, the PagesAPIEndpoint, ImagesAPIEndpoint and DocumentsAPIEndpoint classes have been renamed to PagesAPIViewSet, ImagesAPIViewSet and DocumentsAPIViewSet and moved to the views module in their respective packages. Projects using the Wagtail API should update their registration code accordingly.

Old code:

from wagtail.api.v2.endpoints import PagesAPIEndpoint
from wagtail.api.v2.router import WagtailAPIRouter
from wagtail.images.api.v2.endpoints import ImagesAPIEndpoint
from wagtail.documents.api.v2.endpoints import DocumentsAPIEndpoint

api_router = WagtailAPIRouter('wagtailapi')
api_router.register_endpoint('pages', PagesAPIEndpoint)
api_router.register_endpoint('images', ImagesAPIEndpoint)
api_router.register_endpoint('documents', DocumentsAPIEndpoint)

New code:

from wagtail.api.v2.views import PagesAPIViewSet
from wagtail.api.v2.router import WagtailAPIRouter
from wagtail.images.api.v2.views import ImagesAPIViewSet
from wagtail.documents.api.v2.views import DocumentsAPIViewSet

api_router = WagtailAPIRouter('wagtailapi')
api_router.register_endpoint('pages', PagesAPIViewSet)
api_router.register_endpoint('images', ImagesAPIViewSet)
api_router.register_endpoint('documents', DocumentsAPIViewSet)

wagtail.documents.models.get_document_model has moved

The get_document_model function should now be imported from wagtail.documents rather than wagtail.documents.models. See Custom document model.

Removed Page and Site models from Django admin

Django admin will no longer provide editing access to Page or Site models, if required these models can be registered within individual projects using Django’s ModelAdmin.

# my_app/admin.py
from django.contrib import admin

from wagtail.core.models import Page, Site

admin.site.register(Site)
admin.site.register(Page)