Use list of values for conditions

This commit is contained in:
JonnyWong16 2017-05-07 17:40:41 -07:00
parent 12c94ee79e
commit 5b5ebadfea

View file

@ -226,7 +226,7 @@ def notify_custom_conditions(notifier_id=None, parameters=None):
continue continue
# Make sure the condition values is in a list # Make sure the condition values is in a list
if not isinstance(values, list): if isinstance(values, basestring):
values = [values] values = [values]
parameter_type = param_types[parameter] parameter_type = param_types[parameter]
@ -263,32 +263,30 @@ def notify_custom_conditions(notifier_id=None, parameters=None):
% (parameter, parameter_type)) % (parameter, parameter_type))
return False return False
condition_value = values[0]
# Check each condition # Check each condition
if operator == 'contains': if operator == 'contains':
evaluated_conditions.append(condition_value in parameter_value) evaluated_conditions.append(any(c in parameter_value for c in values))
elif operator == 'does not contain': elif operator == 'does not contain':
evaluated_conditions.append(condition_value not in parameter_value) evaluated_conditions.append(any(c not in parameter_value for c in values))
elif operator == 'is': elif operator == 'is':
evaluated_conditions.append(parameter_value == condition_value) evaluated_conditions.append(any(parameter_value == c for c in values))
elif operator == 'is not': elif operator == 'is not':
evaluated_conditions.append(parameter_value != condition_value) evaluated_conditions.append(any(parameter_value != c for c in values))
elif operator == 'begins with': elif operator == 'begins with':
evaluated_conditions.append(parameter_value.startswith(condition_value)) evaluated_conditions.append(parameter_value.startswith(tuple(values)))
elif operator == 'ends with': elif operator == 'ends with':
evaluated_conditions.append(parameter_value.endswith(condition_value)) evaluated_conditions.append(parameter_value.endswith(tuple(values)))
elif operator == 'greater than': elif operator == 'greater than':
evaluated_conditions.append(parameter_value > condition_value) evaluated_conditions.append(any(parameter_value > c for c in values))
elif operator == 'less than': elif operator == 'less than':
evaluated_conditions.append(parameter_value < condition_value) evaluated_conditions.append(any(parameter_value < c for c in values))
# Format and evaluate the logic string # Format and evaluate the logic string
try: try: