3.1 release notes

What’s new in 3.1

Switch from MPTT to MP

Since django CMS 2.0 we relied on MPTT (Modified Preorder Tree Traversal) for efficiently handling tree structures in the DB. Over the years it proved that MPTT was not fast enough for big tree operations (>1000 pages) and regularly the tree got corrupted because of transactional errors.

In 3.1 we replaced MPTT for MP (Materialized Path). MP is more efficient and has more error resistance then MPTT. It should make the whole django CMS experience way better, faster and reliable.

Before upgrading

Be sure to run manage.py cms fix-mptt before you upgrade.

Dropped support for Django 1.4 and 1.5

Starting from version 3.1 the supported Django versions are 1.6 and 1.7

Incompatible changes

Migrations moved

Migrations packages has been renamed to the standard layout:

  • Django 1.7 migrations are now into standard cms.migrations and menus.migrations packages
  • South migrations are now in cms.south_migrations and menus.south_migrations packages

South 1.0.2 is now required to correctly handle the above layout; if you are upgrading from Django 1.7 / django CMS 3.0.x, please remove the old migration path from MIGRATION_MODULES settings.

Structure mode permission

The new “Can use Structure mode” permission has been added. Without this permission, a non-superuser cannot enter structure mode anymore: this allow more strict workflow which only enable content update for certain users. This change include data migration that adds the new permission to any staff user or group with cms.change_page permission; you can then later change this according to your permission model and workflow. Be aware that existing users cannot be migrated if running the django CMS migrations for the first time in the project, because permissions are not already in place; in this case users must be given the new permission manually.