This is a proposal for implementing one part of what we discussed in
Using add views instead of folder_factories for creating content makes
it necessary to provide some kind of menu items for them. In CMF menu
items are usually represented by 'actions'.
Type infos already define most data required for actions:
- 'id': can be reused
- 'title': can be reused; if we want action titles like 'Add File ...'
instead of 'File' we can change that in the template
- 'description': has already the same purpose as in actions
- 'icon': 'content_icon' is a path relative to the site root, but we can
use the same icon and compute the required absolute path
- 'available': can be computed using allowType of the container
- 'allowed': can be computed using isConstructionAllowed
Missing are these properties:
- 'category': can be hardcoded, e.g. as 'folder/add'
- 'url': requires a new type info property, I propose to use 'url_expr'
to keep it in sync with normal Action objects
I wonder whether addview_url or something similar would be more
appropriate, since "the url of a type" is somewhat ambiguous.
- 'visible': can be hardcoded as True
So instead of adding separate 'add' actions we can extend the type info
classes, making them implement IAction as well.
How about making them adaptable to IAction instead of directly
implementing it? That sounds cleaner than trying to bend some of the old
listActions of the types tool would include type infos if they provide
IAction *and* have an url specified.
Apart from the two comments above, a great +1. :)
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book
Zope-CMF maillist - Zope-CMF@lists.zope.org
See http://collector.zope.org/CMF for bug reports and feature requests