dal.py code cleanup

This commit is contained in:
geomapdev committed 2017-10-04 10:34:48 -07:00
1 parent 3292f760ca
commit 8590aae2e8
1 file changed
+16 -32
+16 -32
View File
@@ -44,39 +44,29 @@ def _default_validators(db, field):
requires.append(validators.IS_TIME()) requires.append(validators.IS_TIME())
elif field_type == 'datetime': elif field_type == 'datetime':
requires.append(validators.IS_DATETIME()) requires.append(validators.IS_DATETIME())
elif db and field_type.startswith('reference') and \ elif db and field_type.startswith('reference'):
field_type.find('.') < 0 and \ if field_type.find('.') < 0 and field_type[10:] in db.tables:
field_type[10:] in db.tables:
referenced = db[field_type[10:]] referenced = db[field_type[10:]]
if hasattr(referenced, '_format') and referenced._format: if hasattr(referenced, '_format') and referenced._format:
requires = validators.IS_IN_DB(db, referenced._id, requires = validators.IS_IN_DB(db, referenced._id,referenced._format)
referenced._format)
else: else:
requires = validators.IS_IN_DB(db, referenced._id) requires = validators.IS_IN_DB(db, referenced._id)
if field.unique: elif field_type.find('.') > 0 and field_type[10:].split('.')[0] in db.tables:
requires._and = validators.IS_NOT_IN_DB(db, field) table_field = field_type[10:].split('.')
if field.tablename == field_type[10:]: table_name=table_field[0]
return validators.IS_EMPTY_OR(requires) field_name=table_field[1]
return requires
elif db and field_type.startswith('reference') and \
field_type.find('.') > 0 and \
field_type[10:].split('.')[0] in db.tables:
table_name=field_type[10:].split('.')[0]
field_name=field_type[10:].split('.')[1]
referenced = db[table_name] referenced = db[table_name]
if hasattr(referenced, '_format') and referenced._format: if hasattr(referenced, '_format') and referenced._format:
requires = validators.IS_IN_DB(db, referenced[field_name], requires = validators.IS_IN_DB(db, referenced[field_name],referenced._format)
referenced._format)
else: else:
requires = validators.IS_IN_DB(db, referenced[field_name]) requires = validators.IS_IN_DB(db, referenced[field_name])
if field.unique: if field.unique:
requires._and = validators.IS_NOT_IN_DB(db, field) requires._and = validators.IS_NOT_IN_DB(db, field)
if field.tablename == table_name: if not field.notnull:
return validators.IS_EMPTY_OR(requires) return validators.IS_EMPTY_OR(requires)
return requires return requires
elif db and field_type.startswith('list:reference') and \ elif db and field_type.startswith('list:reference'):
field_type.find('.') < 0 and \ if field_type.find('.') < 0 and field_type[15:] in db.tables:
field_type[15:] in db.tables:
referenced = db[field_type[15:]] referenced = db[field_type[15:]]
if hasattr(referenced, '_format') and referenced._format: if hasattr(referenced, '_format') and referenced._format:
requires = validators.IS_IN_DB(db, referenced._id, requires = validators.IS_IN_DB(db, referenced._id,
@@ -84,16 +74,10 @@ def _default_validators(db, field):
else: else:
requires = validators.IS_IN_DB(db, referenced._id, requires = validators.IS_IN_DB(db, referenced._id,
multiple=True) multiple=True)
if field.unique: elif field_type.find('.') > 0 and field_type[15:].split('.')[0] in db.tables:
requires._and = validators.IS_NOT_IN_DB(db, field) table_field = field_type[15:].split('.')
if not field.notnull: table_name=table_field[0]
requires = validators.IS_EMPTY_OR(requires) field_name=table_field[1]
return requires
elif db and field_type.startswith('list:reference') and \
field_type.find('.') > 0 and \
field_type[15:].split('.')[0] in db.tables:
table_name=field_type[15:].split('.')[0]
field_name=field_type[15:].split('.')[1]
referenced = db[table_name] referenced = db[table_name]
if hasattr(referenced, '_format') and referenced._format: if hasattr(referenced, '_format') and referenced._format:
requires = validators.IS_IN_DB(db, referenced[field_name], requires = validators.IS_IN_DB(db, referenced[field_name],
@@ -103,7 +87,7 @@ def _default_validators(db, field):
multiple=True) multiple=True)
if field.unique: if field.unique:
requires._and = validators.IS_NOT_IN_DB(db, field) requires._and = validators.IS_NOT_IN_DB(db, field)
if not field.notnull: if field.notnull:
requires = validators.IS_EMPTY_OR(requires) requires = validators.IS_EMPTY_OR(requires)
return requires return requires
# does not get here for reference and list:reference # does not get here for reference and list:reference