Open space: Diazo, Dexterity, Deco

published Oct 10, 2012, last modified Nov 09, 2012

Open space during the Plone Conference 2012.

This is an open space, actually two, during the Plone conference 2012.

Diazo

Execution of some diazo rules can be slow. Laurence Rowe has fixed some of this. Selecting body.someclass is faster than .someclass in diazo. Maybe we can add some debugging information to help in seeing which parts of the rules slow things down, but that is probably hard. collective.stats might be able to help there. There is a new lxml version that should have speed improvements, though maybe wait for the next dot release.

There is a branch of Diazo which has debug info. It should be possible to use this to present feedback in Plone itself, for example in the theme editor. Maybe in plone.app.debugtoolbar.

Moving html around in the content is difficult to do. Specifying the rules is probably the most tricky part, like what happens when a drop rule matches the same content.

Diazo is intended to replace macros, viewlets, and an alternative to customizing the main_template. For more specific pages, you may want to customize that page template after all.

The main Plone theme could be a Diazo theme. We could do that for Plone 5.

Diazo really makes things easier. You can let a php programmer do the theming in Diazo, without having them know Plone.

With plone.app.themingplugins you can create simple zope page templates and have them available as views in your Diazo theme without needing zcml registration. It does not work yet when you want to create this in the theme editor. That may be a good thing to sprint on.

Pick up and use plone.app.debugtoolbar and the theme editor and use it and we can make it better.

Just one more small trick: you can use an xsl variable to calculate an expression once and reference that in your diazo rules.

Using diazo as standalone option outside of Plone, without plone.app.theming, is still also possible.

You can use ESI, edge side includes. Currently that still requires nginx in the middle.

Diazo, Dexterity and Deco

We have lots of moving parts. We have not always weaved them together nicely. Aim: let's see what is left to do before we feel we have a more complete story.

Diazo is basically complete. Theme editor is mostly done. Theming the editing interface is still not something you like to do. We have CMSUI that can help here, getting the editing stuff out of the page. That needs more love.

Dexterity is pretty far along. On the filesystem it is fine. Once you get used to it, it is much easier. Archetypes widgets are mostly better. z3c.form has sensible stuff, but it has a lot of it. The TTW story for dexterity is fairly good as well. Creating a custom view for it is still something you need to do by hand, unless you use Diazo to transform the standard view we give you. You can still add a template in portal_skins, but apparently we broke something here that needs to be fixed.

Deco is supposed to solve some problems that we were using viewlets and portlets for. Have you seen what came out of the recent Sea Sprint? That is very usable. I believe tiles are a good technology. They feel better than portlets and viewlets. Changing the logo should become: change the logo tile instead of the logo viewlet.

Some things can go out at some point:

  • portlets and viewlets
  • core types replaced by deco
  • Archetypes
  • skin layers
  • Python through the web? Replace with emergency script solution.

We need to figure out the migration story. If we remove this stuff, we need to have a migration path.

Installing extension packages without needing to run buildout or maybe not even restarting Plone would be good.

There are so many sites out there that do not need to have custom python or zcml. Some people will rather do without some features that require them to know those techniques.