FeinCMS 1.9 release notes

Welcome to FeinCMS 1.9!

Extensions in the item editor

Extension fieldsets are now presented using a tabbed interface in the item editor as well to raise their visibility.

A better way to mark pages as active in the navigation

The new template tag {% page_is_active %} knows how to handle regular pages and also page pretenders from navigation extensions.

The following template snippet shows the recommended method of marking pages as active:

{% feincms_nav feincms_page level=1 as toplevel %}
<ul>
{% for page in toplevel %}
    {% page_is_active page as is_active %}
    <li {% if is_active %}class="active"{% endif %}>
        <a href="{{ page.get_navigation_url }}">{{ page.title }}</a>
    <li>
{% endfor %}
</ul>

Backwards-incompatible changes

Removal of deprecated features

  • The table content type has been removed. It has open bugs for more than two years which weren’t fixed, and now that we’ve moved on to newer versions of jQuery, the table content didn’t even load.
  • All extensions should inherit from feincms.extensions.Extension. The support for register(cls, admin_cls)-style functions has been removed.
  • Unknown page model fields (for example those added through page extensions) aren’t added to the administration interface anymore. Use modeladmin.add_extension_options if you want extension fields to appear.
  • The _feincms_extensions property on the page model (and on all models inheriting ExtensionsMixin has been removed. It has been deprecated since FeinCMS v1.7.

New deprecations

Notable features and improvements

  • The bundled versions of jQuery and jQuery UI have been updated to 1.9.1 and 1.10.3 respectively. Custom confirmation boxes have been removed and standard ones are used instead now.
  • The diff between 1.8 and 1.9 is large – most of it because of coding style cleanups. flake8 runs should not show any warnings.
  • Extension classes can be passed directly to register_extensions() now.

Bugfixes

Compatibility with Django and other apps

FeinCMS 1.9 requires Django 1.4 or better. The testsuite is successfully run against Django 1.4, 1.5 and 1.6. Django 1.7 is not supported.