Django CMS Changelog

What's new in Django CMS 3.1.0

Apr 21, 2015
  • Remove django-mptt in favor of django-treebeard
  • Remove compatibility with Django 1.4 / 1.5
  • General code cleanup
  • Simplify loading of view restrictions in the menu
  • South is not marked as optional; to use south on Django 1.6 install django-cms[south]
  • Add system_plugin attribute to CMSPluginBase that allow the plugin to override any configured restriction
  • Change placeholder language fallback default to True
  • Remove plugin table naming compatibility layer
  • Remove deprecated cms.context_processors.media context processor
  • Add templatetag render_plugin_block
  • Add templatetag render_model_add_block
  • Add "Structure mode" permission

New in Django CMS 3.0.13 (Apr 16, 2015)

  • Update translations (for internal test project, cms itself has none)

New in Django CMS 3.1.0 RC 1 (Apr 14, 2015)

  • Remove django-mptt in favor of django-treebeard
  • Remove compatibility with Django 1.4 / 1.5
  • General code cleanup
  • Simplify loading of view restrictions in the menu
  • south is not marked as optional; to use south on Django 1.6 install django-cms[south]
  • Add system_plugin attribute to CMSPluginBase that allow the plugin to override any configuration
  • Change placeholder language fallback default to True

New in Django CMS 3.1.0 Beta 1 (Mar 27, 2015)

  • Switch from MPTT to MP:
  • Since django CMS 2.0 we have relied on MPTT (Modified Preorder Tree Traversal) for efficiently handling tree structures in the database.
  • In 3.1, Django MPTT has been replaced by django-treebeard, to improve performance and reliability.
  • Over the years MPTT has proved not to be fast enough for big tree operations (>1000 pages); tree corruption, because of transactional errors, has also been a problem.
  • django-treebeard uses MP (Materialized Path). MP is more efficient and has more error resistance then MPTT. It should make working with and using django CMS better - faster and reliable.
  • Other than this, end users should not notice any changes.
  • Action required:
  • Run manage.py cms fix-mptt before you upgrade.
  • Developers who use django CMS will need to run the schema and data migrations that are part of this release. Developers of third-party applications that relied on the Django MPTT that shipped with django CMS are advised to update their own applications so that they install it independently.
  • Dropped support for Django 1.4 and 1.5:
  • Starting from version 3.1, django CMS runs on Django 1.6 and 1.7.
  • Action required:
  • If you’re still on an earlier version, you will need to install a newer one, and make sure that your third-party applications are also up-to-date with it before attempting to upgrade django CMS.
  • South is now an optional dependency:
  • As Django South is now required for Django 1.6 only, it’s marked as an optional dependency.
  • Action required:
  • To install South along with django CMS use pip install django-cms[south].
  • Migrations moved:
  • Migrations directories have been renamed to conform to the new standard layout:
  • Django 1.7 migrations: in the default cms/migrations and menus/migrations directories
  • South migrations: in the cms/south_migrations and menus/south_migrations directories
  • Action required:
  • South 1.0.2 or newer is required to handle the new layout correctly, so make sure you have that installed.
  • If you are upgrading from django CMS 3.0.x running on Django 1.7 you need to remove the old migration path from MIGRATION_MODULES settings.
  • Structure mode permission:
  • A new *Can use Structure mode* permission has been added.
  • Without this permission, a non-superuser will no longer have access to structure mode. This makes possible a more strict workflow, in which certain users are abnle to edit content but not structure.
  • This change includes a data migration that adds the new permission to any staff user or group with cms.change_page permission.
  • Action required:
  • You may need to adjust these permissions once you have completed migrating your database.
  • Note that if you have existing users in your database, but are installing django CMS and running its migrations for the first time, you will need to grant them these permissions - they will not acquire them automatically.
  • Simplified loading of view restrictions in the menu:
  • The system that loads page view restrictions into the menu has been improved, simplifying the queries that are generated, in order to make it faster.
  • Toolbar API extension:
  • The toolbar API has been extended to permit more powerful use of it in future development, including the use of “clipboard-like” items.
  • For an example of how this can be used, see the new Blueprint application.
  • Per-namespace apphook configuration:
  • django CMS provides a new API to define namespaced Apphook configurations.
  • Aldryn Apphook Config has been created and released as a standard implementation to take advantage of this, but other implementations can be developed.
  • Improvements to the toolbar user interface:
  • Some minor changes have been implemented to improve the toolbar user interface.
  • New templatetags:
  • render_model_add_block
  • The family of render_model templatetags that allow Django developers to make any Django model editable in the frontend has been extended with render_model_add_block, which can offer arbitrary markup as the Edit icon (rather than just an image as previously).
  • render_plugin_block
  • Some user interfaces have some plugins hidden from display in edit/preview mode. render_plugin_block provides a way to expose them for editing, and also more generally provides an alternative means of triggering a plugin’s change form.

New in Django CMS 3.0.10 (Feb 16, 2015)

  • Re-escape the closing script tags

New in Django CMS 3.0.9 (Jan 13, 2015)

  • Revert a change that caused a regression in toolbar login
  • Fix an error in a translated phrase
  • Fix error when moving items in the page tree

New in Django CMS 3.0.8 (Jan 13, 2015)

  • Add require_parent option to CMS_PLACEHOLDER_CONF
  • Fix django-mptt version depenency to be PEP440 compatible
  • Fix some Django 1.4 compatibility issues
  • Add toolbar sanity check
  • Fix behavior with CMSPluginBase.get_render_template()
  • Fix issue on django >= 1.6 with page form fields.
  • Resolve jQuery namespace issues in admin page tree and changeform
  • Fix issues for PageField in Firefox/Safari
  • Fix some Python 3.4 compatibility issue when using proxy modles
  • Fix corner case in plugin copy
  • Documentation fixes
  • Minor code cleanups

New in Django CMS 3.0.7 (Jan 13, 2015)

  • Complete Django 1.7 support
  • Numerous updates to the documentation
  • Numerous updates to the tutorial
  • Updates to better support South 1.0
  • Adds some new, user-facing documentation
  • Fixes an issue with placeholderadmin permissions
  • Numerous fixes for minor issues with the frontend UI
  • Fixes issue where the CMS would not reload pages properly if the URL contained a # symbol
  • Fixes an issue relating to 'limit_choices_to' in forms.MultiValueFields
  • Fixes PageField to work in Django 1.7 environments
  • Updates to community and project governance documentation
  • Added list of retired core developers
  • Added branch policy documentation

New in Django CMS 3.0.6 (Oct 8, 2014)

  • Experimental full Django 1.7 migrations support
  • Add CMSPlugin.get_render_model to get the plugin model at render time
  • Add simplified API to handle toolbar for page extensions
  • Extended custom user model support
  • Added option to publish all the pages in a language / site in publisher_publish command
  • Fixed a few frontend glitches
  • Fixed menu when hide untranslated is set to False
  • Fix sitemap ordering
  • Fix plugin table name generation fixes

New in Django CMS 3.0.5 (Aug 21, 2014)

  • Fixes 2 regressions introduced in 3.0.4
  • apphook and plugins can now be registered via decorator

New in Django CMS 3.0.4 (Aug 16, 2014)

  • Removed file cms/utils/compat/type_checks.py, use django.utils.six module instead
  • Removed file cms/utils/compat/string_io.py, use django.utils.six module instead
  • Removed file cms/utils/compat/input.py, use django.utils.six module instead
  • Use PY3 from django.utils.six instead of PY2 from cms.utils.compat to check Python version
  • Staticplaceholders have not their own permissions
  • Apphooks support now nested namespaces
  • Apphooks can now exclude module for page permission checking
  • fixed the permissions for plugins on apphook pages
  • Allow the use of custom admin sites that do not reside under the 'admin' namespace
  • Added django 1.7 migrations
  • updated docs
  • slots for placeholders can now be 255 characters long
  • Plugin pool initialises incorrectly if database is down during first request
  • some refactoring and simplifications

New in Django CMS 3.0.3 (Aug 16, 2014)

  • Added an alias plugin for referencing plugins and placeholders
  • Added an api to change the context menus of plugins and placeholders from plugins
  • Apphooks respect the page permissions
  • Decorator for views with page permissions
  • #3266 - api.create_page respects site
  • Fixed how permissions are checked for static placeholder.
  • Reduced queries on placeholder.clear by 60%
  • auto-detect django-suit instead of using explicit setting
  • Added the ability to mark (Sub)Menu's 'active'.
  • fallback language fixes for pages
  • Implemented transaction.atomic in django 1.4/1.5 way
  • Added a automatic dynamic template directory for page templates

New in Django CMS 3.0.2 (May 21, 2014)

  • updated authors

New in Django CMS 3.0.1 (May 1, 2014)

  • Renamed NamespaceAllreadyRegistered to NamespaceAlreadyRegistered in menus/exceptions.py
  • Frontend editor UI fixes
  • Fix in cms fix-mptt command

New in Django CMS 3.0.0 (Apr 15, 2014)

  • Plugins are only editable in frontend
  • PluginEditor has been removed in backend
  • New frontend editing
  • New Toolbar
  • Plugin API for creating new plugins and moving has changed
  • render_to_response replaced with TemplateResponse in cms.views
  • CMS_SEO_FIELDS removed and seo fields better integrated
  • meta_keywords field removed as not relevant anymore
  • CMS_MENU_TITLE_OVERWRITE default changed to True
  • Toolbar has language switcher built in
  • User settings module added for saving the language of the user so when he switches languages the toolbar/interface
  • keeps the language.
  • language_chooser templatetag now only displays public languages, even when you are logged in as staff.
  • undo and redo functionality added in toolbar if django-reversion is installed.
  • page admin split in 3 different for basic, advanced and permissions
  • New show_editable_page_title templatetag to edit page title from the frontend
  • Removed PLACEHOLDER_FRONTEND_EDITING setting
  • Removed CMS_URL_OVERWRITE setting. Always enabled.
  • Removed CMS_MENU_TITLE_OVERWRITE settings. Always enabled.
  • Removed CMS_REDIRECTS. Always enabled.
  • Removed CMS_SOFTROOT. Always enabled.
  • Removed CMS_SHOW_START_DATE. Always enabled.
  • Removed CMS_SHOW_END_DATE. Always enabled.
  • Added (optional) language fallback for placeholders.
  • moved apphooks from title to page model so we need to add them only once.
  • request.current_app has been removed.
  • added a namespace field, reverse_id is not used anymore for apphook namespaces.
  • PlaceholderAdmin is deprecated and available as mixin class renamed to PlaceholderAdminMixin.
  • PlaceholderAdmin does not have LanguageTabs anymore. It only has a PluginAPI now.
  • PageAdmin uses the same Plugin API as PlaceholderAdmin
  • Toolbar API for your own apps added
  • twitter plugin removed
  • file plugin removed
  • flash plugin removed
  • googlemap plugin removed
  • inherit plugin removed
  • picture plugin removed
  • teaser plugin removed
  • video plugin removed
  • link plugin removed
  • snippet plugin removed
  • Object level permission support for Placeholder
  • Configuration for plugin custom modules and labels in the toolbar UI
  • Added copy-lang subcommand to copy content between languages
  • Added static_placeholder templatetag
  • Moved render_placeholder from placeholder_tags to cms_tags
  • django 1.6 support added
  • Frontedit editor for Django models
  • Extending the page & title model API
  • Placeholders can be configured to have plugins automatically added.
  • Publishing is now language independent and the tree-view has been updated to reflect this
  • Removed the plugin DB-name magic and added a compatibility layer
  • urls_need_reloading signal added when an apphook change is detected.
  • CMS_PAGE_CACHE, CMS_PLACEHOLDER_CACHE and CMS_PLUGIN_CACHE settings and functionality added. Default is True
  • Detect admin object creation and changes via toolbar and redirect to them.
  • Added support for custom user models
  • Added PageTypes
  • Added CMS_MAX_PAGE_HISTORY_REVERSIONS and changed default of CMS_MAX_PAGE_PUBLISH_REVERSIONS
  • Added option to {% static_placeholder %} to render only on the current site.

New in Django CMS 3.0.0 Beta 2 (Oct 19, 2013)

  • fixed a typo