From 1638fcd55ccc34f3601959ce441f6bfb71ee0b77 Mon Sep 17 00:00:00 2001 From: "beginin.vladimir" Date: Fri, 29 Jul 2022 15:40:17 +0700 Subject: [PATCH] Resolves #9876 Conditions for webhook process tags --- netbox/extras/conditions.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/netbox/extras/conditions.py b/netbox/extras/conditions.py index 965488c3a..73471d660 100644 --- a/netbox/extras/conditions.py +++ b/netbox/extras/conditions.py @@ -1,5 +1,6 @@ import functools import re +from collections import OrderedDict __all__ = ( 'Condition', @@ -103,7 +104,14 @@ class Condition: return value in self.value def eval_contains(self, value): - return self.value in value + # For tags because tags are list of dicts + if (type(value) is list and + value and + type(next(iter(value))) is OrderedDict and + next(iter(value)) is not None): + return next((item for item in value if item["slug"] == self.value), None) is not None + else: + return self.value in value # Regular expressions