Congratulations! I can't wait for what's to come!
On Sun, Apr 10, 2011 at 11:44 PM, Matthias Kestenholz <m...@feinheit.ch>wrote: > Hello everyone > > FeinCMS 1.3.0 has just been released and is available at the usual places. > > > > What is FeinCMS anyway? > ======================= > > > FeinCMS is one of the most advanced Content Management Systems built on top > of Django. FeinCMS not only includes a page module with many bundled > content > types (plugins), a media library and up-to-date documentation but also the > tools to build your own CMS if our view of how a page CMS is supposed to > act like does not fit your requirements. > > > PyPI: http://pypi.python.org/pypi/FeinCMS/ > Github: https://github.com/matthiask/feincms/ > 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 > > > Changes since the last announcement mail (1.3.0.rc1): > > * The test runner has been converted to the class-based test runner API > * Several last-minute bugfixes > > > > 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 > ========================= > > > 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 > ========== > > * FeinCMS pages use the standard Django permalink mechanism inside the > ``get_absolute_url`` implementation. This means that you have to update > the > URL definition if you did not include ``feincms.urls`` directly. > > Change this:: > > url(r'^$|^(.*)/$', 'feincms.views.base.handler'), > > to this:: > > url(r'', include('feincms.urls')), > > Defining the URL patterns directly is still possible. Have a look at > ``feincms.urls`` to find out how this should be done. > > * FeinCMS requires at least Django 1.2 but already has support for Django > 1.3 > features such as staticfiles. The FeinCMS media file folder has been moved > from ``feincms/media/feincms`` to ``feincms/static/feincms`` - if you use > ``django.contrib.staticfiles`` with Django 1.3 (and you should!), FeinCMS' > media files for the administration interface will automatically be made > available without any further work on your part. > > * 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 which 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 and has been changed. The inventory > is versioned now, therefore upgrading should not require any action on > your part. > > * ``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. > > -- > You received this message because you are subscribed to the Google Groups > "Django FeinCMS" group. > To post to this group, send email to django-fein...@googlegroups.com. > To unsubscribe from this group, send email to > django-feincms+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-feincms?hl=en. > > -- 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.