FeinCMS 1.10 release notes

Welcome to FeinCMS 1.10!

Full compatibility with the app-loading refactor in Django 1.7

FeinCMS 1.10 is compatible with Django 1.7. It shouldn’t even be necessary to change your FeinCMS-using code.

The only change is that we cannot test for name clashes in content types anymore. This only concerns you if you were using more than one feincms.models.Base subclass inside the same app using the same content types. You should be using the class_name argument to create_content_type already anyway. The technical reason for this change is that the name clash test requires the app registry to be ready (which it isn’t yet when creating content types).


If for some reason FeinCMS 1.10 does not work with Django 1.7 for you, please provide a description of the problems you’re seeing in the issue tracker.

TinyMCE 4.1 as default rich text configuration

FeinCMS now uses TinyMCE 4.1 as the default rich text editor instead of the outdated 3.x line of releases. The previous version is still officially supported as is CKEditor. Also, the TinyMCE configuration has been changed to hide the menubar by default.

Home-grown schema checking support has been deactivated

Not many words needed. Use South or Django 1.7’s own migrations support instead.

This functionality has been deactivated without a deprecation period because compared to real database migration solutions it looks more like a bug than a feature. Also, it interfered with initial migrations – the page table’s schema was introspected because of other post_syncdb signals before the table itself even existed under certain circumstances, which meant that migrations failed with the only way out being syncdb --all.

To continue using this functionality, set FEINCMS_CHECK_DATABASE_SCHEMA to True. The functionality will be completely removed in the next release.

A better mechanism for assigning pages to different menu bars

The new extension feincms.module.page.extensions.navigationgroups allows assigning pages to different regions, and asking feincms_nav to only return pages belonging to one of those.

The default configuration of the extension defines two regions, default and footer. This can be easily changed by subclassing the extension class and overriding the groups attribute and registering this extension class instead of the original.

An example for getting a list of pages for the footer region follows:

{% load feincms_page_tags %}
{% feincms_nav feincms_page level=2 group='footer' as footer_nav %}

Backwards-incompatible changes

Shouldn’t have any.

Removal of deprecated features


New deprecations


Notable features and improvements

  • The bundled versions of jQuery and jQuery UI have been updated to 1.11.1 and 1.10.3 respectively.
  • feincms_languagelinks does not return page URLs leading to inactive pages anymore.
  • The application content type form does not mysteriously forget values anymore.
  • Page.get_original_translation returns the current page instead of crashing if there is no original translation.
  • feincms_nav returns an empty list instead of crashing if the page argument is None.
  • Settings are documented again.


  • Bulk deletion of pages in the tree editor shouldn’t lead to MPTT data corruption anymore. This didn’t happen often before either, but shouldn’t happen anymore at all.

Compatibility with Django and other apps

FeinCMS 1.10 requires Django 1.4 or better. The testsuite is successfully run against Django 1.4, 1.5, 1.6 and the upcoming 1.7.