Today is a good day for rolling another release. FeinCMS 1.3.0.pre1 was released today and is ready for testing and feedback. Please keep in mind that this isn't a final release yet.
PyPI: http://pypi.python.org/pypi/FeinCMS/1.3.0.pre1 Github: https://github.com/matthiask/feincms/tree/v1.3.0.pre1 Docs: http://www.feinheit.ch/media/labs/feincms/ Please report any issues you find in the issue tracker of github: https://github.com/matthiask/feincms/issues Again, this release would not have been possible without the contributions by the community. Thanks for all the patches, bug reports and ideas which went into this release. ==================================== FeinCMS 1.3 release notes (upcoming) ==================================== FeinCMS 1.3 includes many bugfixes and cleanups and a number of new features. The cleanups and features caused a few backwards incompatible changes. The upgrade path is outlined below. Highlights ========== * Content types can specify the media files (Javascript and CSS files) they need to work correctly. See :ref:`contenttypes-extramedia` for information on how to use this in your own content types. * The content type loading process has been streamlined and requires much less database queries than before. The performance hit on sites with deep page hierarchies, inheritance and many regions is several times smaller than before. * The content type interface has been extended with two new methods, available for all content types who need it: ``process`` is called before rendering pages and is guaranteed to receive the current request instance. Each and every content type (not only application contents as before) has the ability to return full HTTP responses which are returned directly to the user. ``finalize`` is called after rendering and can be used to set HTTP headers and do other post-processing tasks. See :ref:`contenttypes-processfinalize` for more information. (Backwards incompatible and other) Changes ========================================== * The default ``ContentProxy`` has been rewritten to load all content type instances on initialization. The instances stay around for the full request-response cycle which allows us to remove many quasi-global variables (variables attached to the ``request`` object). The new initialization is much more efficient in terms of SQL queries needed; the implementation is contained inside the ``ContentProxy`` class and not distributed all over the place. * The ``ContactFormContent`` has been updated to take advantage of the new content type interface where content types can influence the request-response cycle in more ways. * The ``ct_tracker`` extension has been rewritten to take advantage of the new ``ContentProxy`` features. This means that the format of ``_ct_inventory`` could not be kept backwards compatible. Because of this you have to empty the ``_ct_inventory`` fields yourself on upgrading:: $ ./manage.py shell >>> from feincms.module.page.models import Page >>> Page.objects.all().update(_ct_inventory=None) * ``feincms_site`` is not available in the context anymore. It was undocumented, mostly unused and badly named anyway. If you still need this functionality you should use ``django.contrib.sites`` directly yourself. * The ``_feincms_appcontent_parameters`` has been folded into the ``_feincms_extra_context`` attribute on the current request. The ``appcontent_parameters`` template tag is not necessary anymore (the content of ``_feincms_extra_context`` is guaranteed to be available in the template context) and has been removed. In your appcontent code, change all references of ``_feincms_appcontent_parameters`` to ``_feincms_extra_context``, e.g. params = getattr(request, '_feincms_appcontent_parameters', {}) becomes params = getattr(request, '_feincms_extra_context', {}) * As part of the effort to reduce variables attached to the request object (acting as a replacement for global variables), ``request.extra_path`` has been removed. The same information can be accessed via ``request._feincms_extra_context['extra_path']``. * The ``feincms.views.applicationcontent`` module has been removed. The special casing it provided for application content-using pages aren't necessary anymore. * The page's ``get_absolute_url`` method uses URL reversion for determining the URL of pages instead of returning ``_cached_url``. This means that you need to modify your URLconf entries if you added them to your own ``urls.py`` instead of including ``feincms.urls``. Please make sure that you have two named URL patterns, ``feincms_home`` and ``feincms_handler``:: from feincms.views.base import handler urlpatterns = patterns('', # ... your patterns ... url(r'^$', handler, name='feincms_home'), url(r'^(.*)/$', handler, name='feincms_handler'), ) If you want the old behavior back, all you need to do is add the following code to your ``settings.py``:: ABSOLUTE_URL_OVERRIDES = { 'page.page': lambda page: page._cached_url, } * The copy/replace and preview mechanisms never worked quite right. They were completely dropped from this release. If you still need the ability to create copies of objects, use the standard Django ``ModelAdmin.save_as`` feature. * The documentation is hosted on readthedocs now. The latest documentation is always available here too: http://www.feinheit.ch/media/labs/feincms/ -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.