Improved config validation
This commit is contained in:
parent
3b0920540d
commit
e7e42afdbd
@ -16,7 +16,14 @@ def validate_config(item_attributes):
|
|||||||
# Validate min and max values
|
# Validate min and max values
|
||||||
if attrib.min or attrib.max:
|
if attrib.min or attrib.max:
|
||||||
if attrib.html_input_type not in ["number", "date"]:
|
if attrib.html_input_type not in ["number", "date"]:
|
||||||
return f"{attrib.display_name} must be of type 'number' or 'date' to have min or max values."
|
return f"'{attrib.display_name}' must be of type 'number' or 'date' to have min or max values."
|
||||||
|
else:
|
||||||
|
validation_result = validate_value(attrib, attrib.min)
|
||||||
|
if validation_result != "Ok":
|
||||||
|
return f"Invalid default value for attribute '{attrib_name}': {validation_result}"
|
||||||
|
validation_result = validate_value(attrib, attrib.min)
|
||||||
|
if validation_result != "Ok":
|
||||||
|
return f"Invalid default value for attribute '{attrib_name}': {validation_result}"
|
||||||
|
|
||||||
# Validate default value
|
# Validate default value
|
||||||
if attrib.default_val:
|
if attrib.default_val:
|
||||||
|
@ -21,13 +21,12 @@ def validate_value(attrib, input_val):
|
|||||||
elif attrib.html_input_type == "date":
|
elif attrib.html_input_type == "date":
|
||||||
try:
|
try:
|
||||||
input_val = datetime.strptime(input_val, "%Y-%m-%d") # Validate date format
|
input_val = datetime.strptime(input_val, "%Y-%m-%d") # Validate date format
|
||||||
except ValueError:
|
if attrib.min is not None and input_val < datetime.strptime(attrib.min, "%Y-%m-%d"):
|
||||||
|
return f"{attrib.display_name} must be on or after {attrib.min}."
|
||||||
|
if attrib.max is not None and input_val > datetime.strptime(attrib.max, "%Y-%m-%d"):
|
||||||
|
return f"{attrib.display_name} must be on or before {attrib.max}."
|
||||||
|
except:
|
||||||
return f"{attrib.display_name} must be a valid date in YYYY-MM-DD format."
|
return f"{attrib.display_name} must be a valid date in YYYY-MM-DD format."
|
||||||
|
|
||||||
if attrib.min is not None and input_val < datetime.strptime(attrib.min, "%Y-%m-%d"):
|
|
||||||
return f"{attrib.display_name} must be on or after {attrib.min}."
|
|
||||||
if attrib.max is not None and input_val > datetime.strptime(attrib.max, "%Y-%m-%d"):
|
|
||||||
return f"{attrib.display_name} must be on or before {attrib.max}."
|
|
||||||
elif attrib.html_input_type == "select":
|
elif attrib.html_input_type == "select":
|
||||||
if input_val not in attrib.options:
|
if input_val not in attrib.options:
|
||||||
return f"{attrib.display_name} must be one of {attrib.options}."
|
return f"{attrib.display_name} must be one of {attrib.options}."
|
||||||
|
Loading…
Reference in New Issue
Block a user