2.0.0 release notes (unreleased)¶
October 2023
Welcome to django CMS versioning 2.0.0!
These release notes cover the new features, as well as some backwards incompatible changes you’ll want to be aware of when upgrading from django CMS versioning 1.x.
Django and Python compatibility¶
django CMS supports Django 3.2, 4.0, and 4.1. We highly recommend and only support the latest release of each series.
It supports Python 3.8, 3.9, 3.10, and 3.11. As for Django we highly recommend and only support the latest release of each series.
Features¶
Status indicators in page tree¶
Status indicators are shown in the page tree as of django CMS 4.1+
For a more consistent user experience djangocms-versioning uses icons provided by django CMS 4.1+ and does not provide its own icons any more.
If
djangocms_admin_style
is listed in theINSTALLED_APPS
setting make sure that at least version 3.2.1 is installed. Older versions contain a bug that interferes with djangocms-versioning’s icons.
Status indicators for custom versioned models¶
The new
StateIndicatorMixin
allows to add state indicators to a grouper or content model’s admin changelist view.The new
ExtendedIndicatorVersionAdminMixin
combines theExtendedVersionAdminMixin
and theStateIndicatorMixin
, where the version state is replaced by the indicator and the versioning actions are part of the indicator drop down menu.
Deletion protection¶
By default Version
objects which are sources for later versions are
protected from deletion. This implies that neither the corresponding content
object nor the grouper object can be deleted. To allow deletion of Version
objects set DJANGOCMS_VERSIONING_ALLOW_DELETING_VERSIONS
to True
in
the project’s settings.py
.
Version-locking¶
Previously a separate package, djangocms-version-locking has now been included
in djangocms-versioning. Upon setting DJANGOCMS_VERSIONING_LOCK_VERSIONS
to
True
, draft versions will be locked by default and can only be edited by
the person who created the draft. This is to avoid conflicts in certain
editorial situations.
Backwards incompatible changes in 2.0.0¶
Monkey patching¶
Version 2.0.0 uses new configuration possibilities of django CMS 4.1+ and therefor is incompatible with versions 4.0.x
As a result monkey patching has been removed from djangocms-versioning and is discouraged
Accessing helper functions¶
Direct imports from djangocms_versioning are discouraged. They block drop-in replacements of djangocms_versioning.
djangocms_verisoning.helpers.remove_published_where
has been removed. Use theadmin_manager
of a verisoned content object instead.
Title Extension¶
As of django CMS 4.1 TitleExtension
in cms.extensions.models
has been
renamed to PageContentExtension
to keep a consistent language in the page
models. This change is reflected in djangocms-versioning 2.0.0.
See this PR.
Icon use¶
Djangocms-versioning now uses icons from the core which are only available as of django CMS v4.1+.
Miscellaneous¶
Adds compatibility for User models with no username field (see this PR): Adds the possibility to configure which field of the User model uniquely identifies the User. Default is username.
Bug fixes¶
Adjust migrations to ensure MySql compatibility (see this PR)