http://farm4.static.flickr.com/3045/2585844966_05f617cd92_m.jpg

Cubicweb has experienced a rather large shakeup. Some things needed major restructuration, and that is why you have been left with few releases in the past few weeks. All the cubes available at http://www.cubicweb.org/project have been updated accordingly.

Version 3.2 brings us considerable improvements for:

Form construction

Cubicweb has had for long a nice system of forms smart enough to build themselves out of one cube's schema and some programmer-provided hints (or 'relation tags') to fine-tune things.

It was not easy however to customize these forms nor to build new ones from scratch.

So the new form systems draws from django-forms flexibility and style, keeping all the automatic goodness, and also make it quite easy now to build or customize forms at will.

This is the area were backwards compatibility is mostly gone. Custom forms will have to be rewritten. Don't be angry about that, the forms overhaul was long overdue, and from now it will only move in small evolutionary, well-mannered steps.

Relation tags

Along with the form subsystem is the __rtags__ mechanism substantially updated and made more extensible. The __rtags__ were quite incorrectly attached to entities class at the ORM level instead of being related to views and forms. The cubicweb.web.uicfg module now provides a comprehensive catalog of relation tags instances allowing automatic forms and views customisation in a nicely declarative manner.

Cubicweb 3.2 still remains compatible with the old __rtags__.

View selection/filtering

Cubiweb has also had for long a nice mechanism to filter views applicable to a given result set, the selector system. Various base classes were provided to hide selectors from the programmer and it had grown a little messy.

Selectors now have a nicer declarative feeling and the framework does not try to hide them. Quite the opposite: writing, maintaining and using selectors is now a breeze, and the base classes are gone. More is less !

However Cubicweb 3.2 remains backward compatible with the old selectors. Runtime warnings will help you track these and adapt as you see fit.

Other features

On the smaller features side, worth mentioning are:

  • new RichString attribute type in schema definitions, that simplifies format and encoding management,
  • inline relation edition is now possible (it was formerly limited to attributes) with 'reledit' view,
  • workflow definition has been simplified,
  • web/views has been somewhat cleanup up and reorganized,
  • automatic registration of app objects can now be switched to manual mode (no more hairy hard-to-debug registerer mechanism),
  • a generic SIOC view,
  • a view synthetizing permissions across a whole app.

We hope you enjoy this release! The cubicweb development team.

photo by jared under creative commons

blog entry of

CubicWeb Blog