notunique and notempty support

This commit is contained in:
Emmanuel Garette 2019-11-19 18:52:20 +01:00
parent 6b77b0c5ad
commit d3e99cc9a5
1 changed files with 11 additions and 4 deletions

View File

@ -70,10 +70,17 @@ class Base:
properties = frozenset()
elif isinstance(properties, tuple):
properties = frozenset(properties)
if is_multi and 'empty' not in properties:
# if option is a multi, it cannot be "empty" (None not allowed in the list)
# "empty" is removed for follower's option
properties = properties | {'empty'}
if is_multi:
# if option is a multi, it cannot be 'empty' (None not allowed in the list) and cannot have multiple time the same value
# 'empty' and 'unique' are removed for follower's option
if 'notunique' in properties:
properties = properties - {'notunique'}
else:
properties = properties | {'unique'}
if 'notempty' in properties:
properties = properties - {'notempty'}
else:
properties = properties | {'empty'}
assert isinstance(properties, frozenset), _('invalid properties type {0} for {1},'
' must be a frozenset').format(type(properties),
name)