FeinCMS 1.11 release notes¶
Welcome to FeinCMS 1.11!
Template inheritance with application contents¶
FeinCMS adds a decorator and a TemplateResponse
subclass which can be
returned from apps embedded through ApplicationContent
. The template
response’s template will override the template used by FeinCMS’ main view and
the context will be merged. A selection of HTTP response headers
(currently Cache-Control, Last-Modified and Expires) will also be copied
to the main response. The following two examples are fully equivalent:
from django.template.response import TemplateResponse
from feincms.content.application.models import UnpackTemplateResponse
from feincms.views.decorators import unpack
@unpack
def app_detail(request, ...):
return TemplateResponse(request, 'template.html', {...})
# or
def app_detail(request, ...):
return UnpackTemplateResponse(request, 'template.html', {...})
The response class can also be easily used with Django’s class-based views:
class MyListView(generic.ListView):
response_class = UnpackTemplateResponse
This mechanism supersedes returning a tuple of (template_name, context)
.
This is still supported, but lacks the possibility to override HTTP response
headers.
Backwards-incompatible changes¶
- FeinCMS requires a minimum of Django 1.6.
- The example project has been removed, because it did not really demonstrate a best practices FeinCMS setup. A standard installation of FeinCMS will often include additional libraries such as feincms-oembed, form-designer and additional modules.
Removal of deprecated features¶
There were no deprecated features to be removed.
New deprecations¶
RSSContent
andupdate_rsscontent
have been deprecated, those being the only reason whyFeinCMS
depends onfeedparser
. This will allow us to remove this dependency. Users should switch to feincms-syndication instead.- The automatic discovery of subclasses of
NavigationExtension
has been replaced with an explicit mechanism of defining navigation extensions. Page.cache_key
has never been used by FeinCMS itself and will therefore be removed in a future release. Comparable functionality has been available for a long time withPage.path_to_cache_key
.
Notable features and improvements¶
- Fix the inconsistent filtering of pages inside
feincms_nav
. Navigation extensions always came last, but the last release of FeinCMS added navigation group filtering afterwards. This has been fixed. The workaround for the previous behavior was to add the matching navigation group to page pretenders as well. - Support for importing PIL as import Image has been removed.
- The builtin and mostly broken frontend editing support has been removed. This is not a decision against frontend editing / on site editing in general, it is more about creating a space for new ideas and new implementations.
- The home-grown schema checking support has been removed. Real migrations should be used instead.
- We are logging more stuff.
- The admin CSS has been updated in preparation for Django’s (hopefully!) upcoming django-flat-theme merge.
Bugfixes¶
{% feincms_nav %}
now filters by navigation group before applying navigation extensions for internal consistency.{% page_is_active %}
correctly handles page pretenders now.
Compatibility with Django and other apps¶
FeinCMS 1.11 requires Django 1.6 or better.