This file describe new features and incompatibilities between released version of the CMS.

Release 2.0.12

  • Support Django 3

Release 2.0.10

  • command needs python 3

Release 2.0.9

  • Gerbi command line need python 3

Release 2.0.8

  • New translations, and docker compose examples

Release 2.0.7

  • Bug fixes in admin drag and drop and cookie handling

Release 2.0.6

Released the 17th of January 2019.

  • Improved inline editor CSS

  • Update the example application to contain a blog example application using the 3rd party delegation feature.

  • Update gerbi command line to contain the blog

Release 2.0.3

Released the 8th of January 2019.

  • Fix 3rd party delegation (was broken after Django 2.0)

Release 2.0.2

Released the 7th of January 2019.

  • Update admin icons to use SVG

Release 2.0.1

Released the 20th of December 2018.

  • Fix allow tags in media section so there is an image preview

Release 2.0.0

Released the second of November 2018.

  • Migrate to Django 2.1.X

  • Removal of get_pages_with_tag

Release 1.9.17

Released the 9th of March 2017.

Release 1.9.15

Released the 7th of February 2017.

  • Bugfix for Django 1.11

Release 1.9.14

Released the 23rd of January 2017.

  • Bugfix the demo for Django 1.10

Release 1.9.13

Released the 23rd of January 2017.

  • Added a Media model for the new media library

  • Added a way to insert images from the media library into the basic Rich Text Editor

  • File placeholders now create a new media for each user upload

Release 1.9.12

Released the 5th of January 2017.

  • Bugfix

Release 1.9.11

Released the 5th of January 2017.

  • Improve the frontend edit mode with an edit bar on the top left of the page so you can disable the edit mode if necessary.

Release 1.9.10

Released the 27th of December 2016.

Release 1.9.9

Released the 18th of December 2016.

Release 1.9.8

Released the 13th of December 2016.

  • Official support for inline frontend editing

  • New shared keyword for placeholder: shared content accross pages

Release 1.9.7

Released the 23rd of October 2016.

  • Fix the build and some details in the admin

  • Improvement in the drag and drop interface

Release 1.9.6

Released the 11th of September 2016.

  • Improvement in the page edit form UX

Release 1.9.5

Released the 8th of September 2016.

  • Improvement in the drag and drop UX

Release 1.9.4

Released the 2nd of September 2016.

  • Changes in so dependecies can be installed with pip install django-page-cms[full]

Release 1.9.3

Released the 2nd of Semptember 2016.

  • A new conditional template tag called page_has_content

  • A new gerbi console command to create demo websites: gerbi –create mywebsite

  • Improve page admin look and feel

  • Fix problems withing the admin (Javascript errors)

  • Update documentation

Release 1.9.1

Released the 12th of June 2016.

  • A new keyword section on the placeholer has been added to create groups in the admin

  • Language fallback for empty page placeholders in the admin was enabeled and causing possible weirdness

  • Grappelli support (incomplete)

  • Support for section (grouping) fields in admin

  • Clean upload file names

  • Bug fixes

  • Basic RTE improvement in the admin

  • Code cleanup

Release 1.9.0

Released the 1st of February 2016.

  • Support Django 1.9

  • Support Python 3.4, 3.5

  • Redirect to new urls after updating slug. New settings PAGE_REDIRECT_OLD_SLUG

  • Added get_pages_with_tag templatetag

  • Added tags in JSON export/import

  • Code cleanup

  • PAGE_CACHE_LOCATION setting is removed

Release 1.8.2

Released the 20th of December 2015.

  • Migrations files were not included in 1.8.1

  • Add a pages_push and pages_pull command that permit to pull and push content between different hosts in rather smart and non breaking way.

Release 1.8.1

Released the 24th of September 2015.

Release 1.8.0

Released the 23rd of April 2015.

  • Updated to Django 1.8

  • Jumped 2 version to stick with Django versionning numbers

Backward Incompatible Changes

  • Incompatible with Django 1.7 and lower

Release 1.6.2

Released the 27th of July 2014.

  • Added a ckeditor placeholder using django-ckeditor

  • The project now use transifex to handle it’s translations (

  • Fix several bugs related to placeholders and cache.

  • Fix a bug with files using non ascii characters.

  • Fix a bug with the loading icon.

Release 1.6.1

Released the 2nd of June 2014.

  • Fix a bug with the image upload.

  • Fix a bug with files using non ascii characters.

  • Fix a bug with the loading icon.

Release 1.6.0

Released the 11th of March 2014.


  • Full compatibility with Python 3.3 ( as well python 2.7 with the same code base.

  • Django-page-cms is now compatible with Django 1.6.2

  • Setup selenium tests infrastructure

  • New Markdown Placeholder

  • Django-page-cms has a test coverage of 90%. Commits that bring this number down will be rejected.

  • Preserve the language choice across saves in the admin interface

  • Move the JSON export in it’s own plugin application

Backward Incompatible Changes

  • HTML sanitization and the dependecy to the html5lib have been removed.

  • Remove support for WYMEditor, markItUp and CKEditor editors. Rational: Those Widget are untested, not updated and were created when packages for those widgets didn’t exists as python packages (django-ckeditor, django-wymeditor, django-markitup). If you need those editors please install the package and register the widget to use them directly in your templates.

  • The pages_navigation context processor has been removed. This is not useful as {% load_pages %} already load the pages_navigation variable in the context.

  • Removal of the video placeholder. Rational: Used as an example but add no real value to the CMS.

  • Removal of PageAdminWithDefaultContent. Rational: PageAdminWithDefaultContent is completly untested and can be easily reproduced in any project if necessary.

  • Move po import/export to it’s own plugin application.

  • PAGE_CONNECTED_MODELS is gone. Use inline admin objects instead

Release 1.5.3

Released the 23 of October 2013.

  • Tiny MCE javascript is not included with this CMS anymore. Please use

  • A more agressive cache should reduce page related SQL queries to 3 once the cache is warm.

  • A plugin app example as been created in pages.plugins.category.

  • jquery.query-2.1.7.js is properly restaured this time.

Release 1.5.2

Released on the first of September 2013.

  • Fix bad migrations.

  • Test and fix a bug with the PAGE_AUTOMATIC_SLUG_RENAMING option.

  • Re-introduce a previously delete javascript file (jquery.query-2.1.7.js) necessary in the admin interface.

  • File and Image placeholer now use the same filename scheme that preserve the original filename.

Release 1.5.1

Released on the 7th of August 2013.

  • Documentation fixes.

  • Dependencies on html5lib was incorrect.

  • Placeholder names can now be any string if quotes are used. “éà àü” is a valid placeholder name.

Release 1.5.0

  • Full compatibility with Django 1.5

  • New Drag and Drop interaction in the admin (jquery.ui not needed anymore)

  • New placeholder JsonPlaceholderNode


  • Haystack 2.0 compatibility (not tested)

  • Cleanup the admin JavaScript files

  • Possibility to Substituting a custom User model (new in Django 1.5)

  • Remove the dependency on BeautifulSoup

Release 1.4.3

  • New placeholder tag: contactplaceholder that produce a contact form.

  • Performance improvement: don’t render the template with a Context in the get_placeholder method.

  • Fix some issue with Ajax calls and csrf protection.

  • Fix some outdated migrations.

  • New placeholder tag: fileplaceholder allows users to upload files.

  • Italian traduction.

  • Added X-View headers to response in order to work with ‘Edit this object’ bookmarklet.

Release 1.4.2

  • Fix a packaging issue with the static files. The package_data setup variable was incorrect.

Release 1.4.1

  • Tests are not executed when you execute ./ test, unless explicity enabled with PAGE_ENABLE_TESTS.

  • Deprecation of the auto_render decorator.

  • Fix the request mock to work with the latest trunk of Django.

  • ImagePlaceholder: use instead of from import FileSystemStorage

  • Added setting for allowing realtime search index rather than index on management command.

  • Optimize and cache is_first_root method.

  • Fix a bug in the {% get_content %} tag.

Release 1.4.0

  • A cute new name for the django page CMS : Gerbi CMS. The package name will remain django-page-cms for this release but might be changed to gerbi in a near future.

  • Implement 2 classes for the Django sitemap framework. Documentation on sitemap classes

  • Add a markitup REST editor.

  • Fix a bug with pages_dynamic_tree_menu template tag and multiple roots in a pages tree.

  • Added a PAGES_STRICT_URLS setting. If set to True the CMS will check for the complete URL instead of just the slug. If the complete path doesn’t match, a 404 error is raised in the view.

  • Added 2 managing commands for exporting and importing PO translation files into the CMS. Documentation on the commands

  • Add a PAGE_CONTENT_REVISION_DEPTH setting to limit the amount of revision we want to keep.

  • Fix a bug so the CMS can run without django-taggit installed.

  • Fix a bug with placeholder and template inheritance.

  • The pages-root URL doesn’t need to be specified anymore. But you can still use it if you want to define a special URL for the root page.

Backward Incompatible Changes

  • New delegation rules: the CMS delegate not only the exact path leading to the page but also the whole sub path. Documentation on the delegation as been updated.

  • The default view now raise an ValueError if the path argument is not passed instead of guessing the path by using request.path.

Release 1.3.0

  • The default view is now a class therefor you can subclass it and change it’s behavior more easily.

  • Fix a bug with get_slug_relative_path that may strip the language 2 times from the URL.

  • Remove the dependency to django-unittest-depth.

  • Don’t raise a 404 when the LANGUAGE_CODE language is not present in the PAGE_LANGUAGES list.

  • Get ride of the only raw SQL command by using the ORM’s annotate.

  • Fix a cache issue with show_absolute_url and get_complete_slug.

  • The default template for menu now display the title instead of the slug in the link

  • Improve the default application look.

Incompatible changes

  • Placeholer content is now marked as safe by default.

  • The CMS need the new version of django-mptt 0.4.1.

  • Remove the support for django-tagging and use django-taggit instead.


Install the new django-mptt package:

sudo pip install -U django-mptt>=0.4.1

If you want to use tags you should install the new django-taggit:

sudo pip install django-taggit

Release 1.2.1

  • Change the cache class attributes into data attributes as it was intented in the design for the “per instance” cache.

Release 1.2.0

  • Add publish right managements in the admin.

  • Fix an admin bug with the untranslated option for placeholder.

  • Fix the package so the media are included.

  • Fix bug with the default value of PAGE_TEMPLATES doesn’t trigger an error in the admin when unspecified.

  • Add a delete image feature to the image placeholder.

  • Make root page url ‘/’ work with the PAGE_USE_LANGUAGE_PREFIX option.

  • Change the placeholder save prototype by adding an extra keyword parameter: extra_data.

  • Fix a bug with the image placeholder when the “save and continue” button is used.

Release 1.1.3

  • Improved search index (url and title are included).

  • The setup now specify django-mptt-2 instead of django-mptt.

  • New template tag for navigation called “pages_siblings_menu”.

  • New object PageAdminWithDefaultContent: copy the official language text into new language page’s content blocks

  • New setting PAGE_HIDE_SITES to hide the sites. When True the CMS only show pages from the current site used to access the admin. This allows administration of separate page-cms sites with the same DB.

  • New admin template tag: language_content_up_to_date templatetag: mark the translations needing updating in the admin.

  • DEFAULT_PAGE_TEMPLATE is rennomed into PAGE_DEFAULT_TEMPLATE. This setting will still continue to work.

  • Add a new template tag get_page to insert page object into the context.

Release 1.1.2

  • Change the default value of PAGE_TAGGING and PAGE_TINYMCE to False

  • Implement drag and drop within the admin interface.

  • Implement haystack SearchIndex for page content search.

  • Add the untranslated placeholder keyword. Enable the user to have a single placeholder content accross all languages.

  • Add back the hierarchical change rights management for every page.

Release 1.1.1

  • Add new inherited placeholder option to inherit content from a parent page.

  • PagePermission object is gone in favor of django-authority.

  • New permission by language.

  • New permission for freezing page content.

  • Add a get_date_ordered_children_for_frontend Page’s method.

  • Add missing templates to the package.

Release 1.1.0

  • PAGE_TEMPLATES setting can also be a callable.

  • PAGE_UPLOAD_ROOT setting enable you to choose where files are uploaded.

  • The CMS comes with south migrations if you want to use them.

  • get_url is renamed into get_complete_slug.

  • get_absolute_url is renamed into get_url_path.

  • Admin widgets now needs to use a registery to be used within the admin. The placeholder template tag doesn’t load load external modules for you anymore.

  • RTL support for pages in admin.

  • The context variable pages has been renamed to pages_naviagtion to avoid any name conflict with some pagination tags.


A new character field called delegate_to is added to the page model. to enable the delegation of the pages rendering to a 3rd party application:

ALTER TABLE pages_page ADD COLUMN delegate_to varchar(100) NULL;

Release 1.0.9

  • Finish to migrate the old wiki into the sphinx documentation

  • Fix the package so it can be installed properly with easy_install

  • Add a new placeholder {% imageplaceholder %} for a basic automatic image handling in the admin.

Release 1.0.8

  • A few bug fix.

  • A automatic internal link system. Page link don’t break even if you move the linked page.