better multi's mandatory support
This commit is contained in:
parent
4ec269f2b9
commit
64fc2df3d2
@ -157,12 +157,12 @@ class _Value:
|
||||
for index in range(leadership_len):
|
||||
value = self.config.get_value(key,
|
||||
index)
|
||||
self._display_warnings(key, value, option['type'], option['name'], withwarning)
|
||||
self._display_warnings(key, value, option['type'], key, withwarning)
|
||||
values.append(value)
|
||||
ret[key] = values
|
||||
else:
|
||||
value = self.config.get_value(key)
|
||||
self._display_warnings(key, value, option['type'], option['name'], withwarning)
|
||||
self._display_warnings(key, value, option['type'], key, withwarning)
|
||||
ret[key] = value
|
||||
if schema.get('type') == 'array':
|
||||
leadership_len = len(value)
|
||||
@ -248,12 +248,12 @@ class TiramisuOptionValue(_Value):
|
||||
if self.index is None:
|
||||
raise APIError(_('index must be set with the follower option "{}"').format(self.path))
|
||||
value = self.config.get_value(self.path, self.index)
|
||||
self._display_warnings(self.path, value, self.schema['type'], self.schema['name'])
|
||||
self._display_warnings(self.path, value, self.schema['type'], self.path)
|
||||
return value
|
||||
if self.index is not None:
|
||||
raise APIError(_('index must only be set with a follower option, not for "{}"').format(self.path))
|
||||
value = self.config.get_value(self.path)
|
||||
self._display_warnings(self.path, value, self.schema['type'], self.schema['name'])
|
||||
self._display_warnings(self.path, value, self.schema['type'], self.path)
|
||||
return value
|
||||
|
||||
def list(self):
|
||||
@ -294,7 +294,7 @@ class TiramisuOptionValue(_Value):
|
||||
value,
|
||||
remote,
|
||||
leader_old_value)
|
||||
self._display_warnings(self.path, value, type_, self.schema['name'])
|
||||
self._display_warnings(self.path, value, type_, self.path)
|
||||
|
||||
def reset(self):
|
||||
self.config.delete_value(self.path,
|
||||
@ -525,8 +525,8 @@ class ContextValue(_Value):
|
||||
def mandatory(self):
|
||||
for key, value in self.dict().items():
|
||||
if self.config.isfollower(key):
|
||||
# FIXME test with index
|
||||
if self.model.get(key, {}).get(None, {}).get('required'):
|
||||
# FIXME test with index
|
||||
if self.config.get_schema(key).get('isSubMulti'):
|
||||
for val in value:
|
||||
if not val or None in val or '' in val:
|
||||
@ -534,8 +534,12 @@ class ContextValue(_Value):
|
||||
break
|
||||
elif None in value or '' in value:
|
||||
yield key
|
||||
elif value is None or \
|
||||
(self.config.get_schema(key).get('isMulti') and (not value or None in value or '' in value)):
|
||||
elif self.config.get_schema(key).get('isMulti'):
|
||||
if self.model.get(key, {}).get('required') and (None in value or '' in value):
|
||||
yield key
|
||||
if self.model.get(key, {}).get('needs_len') and not value:
|
||||
yield key
|
||||
elif self.model.get(key, {}).get('required') and value is None:
|
||||
yield key
|
||||
|
||||
|
||||
@ -971,6 +975,8 @@ class Config:
|
||||
if value is None:
|
||||
match = True
|
||||
else:
|
||||
if isinstance(value, int):
|
||||
value = str(value)
|
||||
match = self.form[path]['pattern'].search(value)
|
||||
if not remote:
|
||||
if not match:
|
||||
|
Loading…
Reference in New Issue
Block a user