def installSchema(self): sch = queryUtility(ISchemaType, self.__context__.oid) if sch is None: storage.registerSchema( self.__context__.oid, self.schema, type=ISchemaType, title=self.title, description=self.description)
def registerPreference(name, schema, klass=None, title='', description='', configContext=None): if '.' in name: category, name = name.split('.', 1) else: category = '' PreferenceClass = preferencetype.PreferenceType( str(name), category, schema, klass, title, description) # register storage schema if getFields(schema): storage.registerSchema( 'memphis.preferences-%s.%s'%(category, name), schema) # instance inst = PreferenceClass() # register preference in preferences def _register(preference): root.Preferences.addPreference(preference) config.addAction( configContext, discriminator = ('memphis.preferences:preference', category, name), callable = _register, args = (inst,)) return inst