.. _upgrade-to-2-0-0: ******************* 2.0.0 release notes ******************* *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 the ``INSTALLED_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 the ``ExtendedVersionAdminMixin`` and the ``StateIndicatorMixin``, 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 the ``admin_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 `_)