Navigation

django-mptt is now used as a
proper dependency and is no longer shipped with the django CMS. This solves the
version conflict issues many people were experiencing when trying to use the django CMS
together with other Django apps that require django-mptt. django CMS 2.2
requires django-mptt 0.5.1.

Warning

Please remove the old mptt package from your Python site-packages
directory before upgrading. The setup.py file will install the
django-mptt package as an external dependency!

Due to the sorry state of the old plugin media framework, it has been dropped in
favor of the more stable and more flexible django-sekizai, which is a new
dependency for the django CMS 2.2.

The following methods and properties of cms.plugins_base.CMSPluginBase
are affected:

cms.plugins_base.CMSPluginBase.PluginMedia

cms.plugins_base.CMSPluginBase.pluginmedia

cms.plugins_base.CMSPluginBase.get_plugin_media()

Accessing those attributes or methods will raise a
cms.exceptions.Deprecated error.

The cms.middleware.media.PlaceholderMediaMiddleware middleware was also
removed in this process and is therefore no longer required. However you are now
required to have the 'sekizai.context_processors.sekizai' context processor
in your TEMPLATE_CONTEXT_PROCESSORS setting.

All templates in CMS_TEMPLATES must at least contain the js and
css sekizai namespaces.

The toolbar no longer hacks itself into responses in the middleware, but rather
has to be enabled explicitly using the {%cms_toolbar%} template tag from
the cms_tags template tag library in your templates. The template tag
should be placed somewhere within the body of the HTML (within <body>...</body>).

This solves issues people were having with the toolbar showing up in places it
shouldn’t have.

The static files (css/javascript/images) were moved from /media/ to
/static/ to work with the new django.contrib.staticfiles app in Django
1.3. This means you will have to make sure you serve static files as well as
media files on your server.

Warning

If you use Django 1.2.x you will not have a django.contrib.staticfiles
app. Instead you need the django-staticfiles backport.