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)
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)
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)