From 6f4836b52b4355b0c06b2e14d9272d15f34c84a3 Mon Sep 17 00:00:00 2001 From: Eibriel Date: Wed, 15 Apr 2015 06:43:53 -0300 Subject: [PATCH] Converting datetime string to datetime on Form --- attract/application/__init__.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/attract/application/__init__.py b/attract/application/__init__.py index d783e9af..0da11f66 100644 --- a/attract/application/__init__.py +++ b/attract/application/__init__.py @@ -122,6 +122,18 @@ class CustomTokenAuth(BasicsAuth): def authorized_protected(self): pass +def convert_properties(properties, node_schema): + for prop in node_schema: + schema_prop = node_schema[prop] + prop_type = schema_prop['type'] + if prop_type == 'dict': + properties[prop] = convert_properties( + properties[prop], schema_prop['schema']) + elif prop_type == 'datetime': + prop_val = properties[prop] + properties[prop] = datetime.strptime(prop_val, RFC1123_DATE_FORMAT) + + return properties class ValidateCustomFields(Validator): def _validate_valid_properties(self, valid_properties, field, value): @@ -130,12 +142,7 @@ class ValidateCustomFields(Validator): lookup['_id'] = ObjectId(self.document['node_type']) node_type = node_types.find_one(lookup) - # TODO make this REAL! - try: - value['time']['start'] = datetime.strptime( - value['time']['start'], RFC1123_DATE_FORMAT) - except: - pass + value = convert_properties(value, node_type['dyn_schema']) v = Validator(node_type['dyn_schema']) val = v.validate(value)