Пример #1
0
def manage_addZClass(self, id, title='', baseclasses=[],
                     meta_type='', CreateAFactory=0, REQUEST=None,
                     zope_object=0):
    """Add a Z Class
    """
    if bad_id(id) is not None:
        raise 'Bad Request', (
            'The id %s is invalid as a class name.' % id)
    if not meta_type: meta_type=id

    r={}
    for data in self.aq_acquire('_getProductRegistryData')('zclasses'):
        r['%(product)s/%(id)s' % data]=data['meta_class']

    bases=[]
    for b in baseclasses:
        if Products.meta_classes.has_key(b):
            bases.append(Products.meta_classes[b])
        elif r.has_key(b):
            bases.append(r[b])
        else:
            raise 'Invalid class', b

    Z=ZClass(id, title, bases, zope_object=zope_object)
    Z._zclass_.meta_type=meta_type
    self._setObject(id, Z)

    if CreateAFactory and meta_type:
        self.manage_addDTMLMethod(
            id+'_addForm',
            id+' constructor input form',
            addFormDefault % {'id': id, 'meta_type': meta_type},
            )
        constScript = PythonScript(id+'_add')
        constScript.write(addDefault % {'id': id, 'title':id+' constructor'})
        self._setObject(constScript.getId(), constScript)
        self.manage_addPermission(
            id+'_add_permission',
            id+' constructor permission',
            'Add %ss' % meta_type
            )
        self.manage_addPrincipiaFactory(
            id+'_factory',
            id+' factory',
            meta_type,
            id+'_addForm',
            'Add %ss' % meta_type
            )

        Z=self._getOb(id)
        Z.propertysheets.permissions.manage_edit(
            selected=['Add %ss' % id])
        Z.manage_setPermissionMapping(
            permission_names=['Create class instances'],
            class_permissions=['Add %ss' % meta_type]
        )
    if REQUEST is not None:
        return self.manage_main(self,REQUEST, update_menu=1)
Пример #2
0
def manage_addZClass(self, id, title="", baseclasses=[], meta_type="", CreateAFactory=0, REQUEST=None, zope_object=0):
    """Add a Z Class
    """

    if bad_id(id) is not None:
        raise BadRequest, ("The id %s is invalid as a class name." % id)
    if not meta_type:
        meta_type = id

    r = {}
    for data in self.aq_acquire("_getProductRegistryData")("zclasses"):
        r["%(product)s/%(id)s" % data] = data["meta_class"]

    bases = []
    for b in baseclasses:
        if Products.meta_classes.has_key(b):
            bases.append(Products.meta_classes[b])
        elif r.has_key(b):
            bases.append(r[b])
        else:
            raise ValueError, "Invalid class: %s" % b

    Z = ZClass(id, title, bases, zope_object=zope_object)
    Z._zclass_.meta_type = meta_type
    self._setObject(id, Z)

    if CreateAFactory and meta_type:
        self.manage_addDTMLMethod(
            id + "_addForm", id + " constructor input form", addFormDefault % {"id": id, "meta_type": meta_type}
        )
        constScript = PythonScript(id + "_add")
        constScript.write(addDefault % {"id": id, "title": id + " constructor"})
        self._setObject(constScript.getId(), constScript)
        self.manage_addPermission(id + "_add_permission", id + " constructor permission", "Add %ss" % meta_type)
        self.manage_addPrincipiaFactory(
            id + "_factory", id + " factory", meta_type, id + "_addForm", "Add %ss" % meta_type
        )

        Z = self._getOb(id)
        Z.propertysheets.permissions.manage_edit(selected=["Add %ss" % id])
        Z.manage_setPermissionMapping(
            permission_names=["Create class instances"], class_permissions=["Add %ss" % meta_type]
        )
    if REQUEST is not None:
        return self.manage_main(self, REQUEST, update_menu=1)
Пример #3
0
def manage_addZClass(self,
                     id,
                     title='',
                     baseclasses=[],
                     meta_type='',
                     CreateAFactory=0,
                     REQUEST=None,
                     zope_object=0):
    """Add a Z Class
    """

    if bad_id(id) is not None:
        raise BadRequest, ('The id %s is invalid as a class name.' % id)
    if not meta_type: meta_type = id

    r = {}
    for data in self.aq_acquire('_getProductRegistryData')('zclasses'):
        r['%(product)s/%(id)s' % data] = data['meta_class']

    bases = []
    for b in baseclasses:
        if Products.meta_classes.has_key(b):
            bases.append(Products.meta_classes[b])
        elif r.has_key(b):
            bases.append(r[b])
        else:
            raise ValueError, 'Invalid class: %s' % b

    Z = ZClass(id, title, bases, zope_object=zope_object)
    Z._zclass_.meta_type = meta_type
    self._setObject(id, Z)

    if CreateAFactory and meta_type:
        self.manage_addDTMLMethod(
            id + '_addForm',
            id + ' constructor input form',
            addFormDefault % {
                'id': id,
                'meta_type': meta_type
            },
        )
        constScript = PythonScript(id + '_add')
        constScript.write(addDefault % {
            'id': id,
            'title': id + ' constructor'
        })
        self._setObject(constScript.getId(), constScript)
        self.manage_addPermission(id + '_add_permission',
                                  id + ' constructor permission',
                                  'Add %ss' % meta_type)
        self.manage_addPrincipiaFactory(id + '_factory', id + ' factory',
                                        meta_type, id + '_addForm',
                                        'Add %ss' % meta_type)

        Z = self._getOb(id)
        Z.propertysheets.permissions.manage_edit(selected=['Add %ss' % id])
        Z.manage_setPermissionMapping(
            permission_names=['Create class instances'],
            class_permissions=['Add %ss' % meta_type])
    if REQUEST is not None:
        return self.manage_main(self, REQUEST, update_menu=1)