[Zope-CMF] Re: [CMF-checkins] CVS: CMF/CMFSetup - actions.py:1.18

Florent Guillaume fg at nuxeo.com
Mon Feb 21 13:02:24 EST 2005


Yvo Schubbe  <zope-cmf at zope.org> wrote:
> === CMF/CMFSetup/actions.py 1.17 => 1.18 ===
> +            if p_info['actions']:
> +                for a_info in p_info['actions']:
> +                    parent = actions_tool
> +                    for category_id in a_info['category'].split('/'):
> +                        if category_id not in parent.objectIds():
> +                            o_info = {'id': str(category_id),
> +                                      'meta_type': 'CMF Action Category',
> +                                      'properties':(),
> +                                      'objects': ()}
> +                            apc.initObject(parent, o_info)
> +                        parent = parent._getOb(category_id)
> +                    if a_info['id'] not in parent.objectIds():
> +                        o_info = {'id': str(a_info['id']),
> +                                  'meta_type': 'CMF Action',
> +                                  'properties':
> +                                     ( {'id': 'title',
> +                                        'value': a_info.get('title', ''),
> +                                        'elements': ()}
> +                                     , {'id': 'description',
> +                                        'value': a_info.get('description', ''),
> +                                        'elements': ()}
> +                                     , {'id': 'url_expr',
> +                                        'value': a_info.get('action', ''),
> +                                        'elements': ()}
> +                                     , {'id': 'available_expr',
> +                                        'value': a_info.get('condition', ''),
> +                                        'elements': ()}
> +                                     , {'id': 'permissions',
> +                                        'value': '',
> +                                        'elements': a_info['permissions']}
> +                                     , {'id': 'visible',
> +                                        'value': a_info.get('visible', True),
> +                                        'elements': ()}
> +                                     ),
> +                                  'objects': ()}
> +                        apc.initObject(parent, o_info)

Nitpick: I prefer to write such code in a way that indentation is minimal:

            for a_info in p_info['actions'] or ():
                parent = actions_tool
                for category_id in a_info['category'].split('/'):
                    if category_id not in parent.objectIds():
                        o_info = {'id': str(category_id),
                                  'meta_type': 'CMF Action Category',
                                  'properties':(),
                                  'objects': ()}
                        apc.initObject(parent, o_info)
                    parent = parent._getOb(category_id)
                if a_info['id'] in parent.objectIds():
                    continue
                o_info = {'id': str(a_info['id']),
                          'meta_type': 'CMF Action',
                          'properties':
                             ( {'id': 'title',
                                'value': a_info.get('title', ''),
                                'elements': ()}
                             , {'id': 'description',
                                'value': a_info.get('description', ''),
                                'elements': ()}
                             , {'id': 'url_expr',
                                'value': a_info.get('action', ''),
                                'elements': ()}
                             , {'id': 'available_expr',
                                'value': a_info.get('condition', ''),
                                'elements': ()}
                             , {'id': 'permissions',
                                'value': '',
                                'elements': a_info['permissions']}
                             , {'id': 'visible',
                                'value': a_info.get('visible', True),
                                'elements': ()}
                             ),
                          'objects': ()}
                apc.initObject(parent, o_info)

FWIW,
Florent

-- 
Florent Guillaume, Nuxeo (Paris, France)   CTO, Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   fg at nuxeo.com


More information about the Zope-CMF mailing list