def __init__(self, id, title='', schema=None, **kw): """Create in-ZODB mutable property provider. Provide a schema either as a list of (name,type,value) tuples in the 'schema' parameter or as a series of keyword parameters 'name=value'. Types will be guessed in this case. The 'value' is meant as the default value, and will be used unless the user provides data. If no schema is provided by constructor, the properties of the portal_memberdata object will be used. Types available: string, text, boolean, int, long, float, lines, date """ self.id = id self.title = title self._storage = OOBTree() # calculate schema and default values defaultvalues = {} if not schema and not kw: schema = () elif not schema and kw: schema = _guessSchema(kw) defaultvalues = kw else: valuetuples = [(name, value) for name, type, value in schema] schema = [(name, type) for name, type, value in schema] for name, value in valuetuples: defaultvalues[name] = value self._schema = tuple(schema) self._defaultvalues = defaultvalues
def __init__(self, id, title='', schema=None, **kw): """Create in-ZODB mutable property provider. Provide a schema either as a list of (name,type,value) tuples in the 'schema' parameter or as a series of keyword parameters 'name=value'. Types will be guessed in this case. The 'value' is meant as the default value, and will be used unless the user provides data. If no schema is provided by constructor, the properties of the portal_memberdata object will be used. Types available: string, text, boolean, int, long, float, lines, date """ self.id = id self.title = title self._storage = OOBTree() # calculate schema and default values defaultvalues = {} if not schema and not kw: schema = () elif not schema and kw: schema = _guessSchema(kw) defaultvalues = kw else: valuetuples = [(name, value) for name, type, value in schema] schema = [(name, type) for name, type, value in schema] for name, value in valuetuples: defaultvalues[name] = value self._schema = tuple(schema) self._defaultvalues = defaultvalues
def testGuessSchema(self): sm = AccessControl.getSecurityManager() user = sm.getUser() info = { 'firstname': 'Joe', 'lastname': 'Schmoe', 'email': '*****@*****.**', 'date_created': datetime.datetime.today(), } self.source_users.doAddUser(user.getUserName(), self.password) self.source_properties.updateUserInfo(user=user, set_id=None, set_info=info) props = self.source_properties.getPropertiesForUser(user) s = '' for key, value in props.propertyItems(): s += 'key=%s; value=%s; type=%s\n' % (key, value, str(type(value))) #XXX props.setProperty(user, 'date_created', str(DateTime.DateTime())) for value in props.propertyValues(): value = dict(value=value) _guessSchema(value)