From 80a629a81b30ae44ed4794a6f3c2e8b2514b1686 Mon Sep 17 00:00:00 2001
From: fspreck <f.spreckelsen@indiscale.com>
Date: Tue, 19 Apr 2022 18:39:28 +0200
Subject: [PATCH] FIX: Treat empty list values in assure_object_is_in_list

---
 src/caosadvancedtools/cfood.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/caosadvancedtools/cfood.py b/src/caosadvancedtools/cfood.py
index 45006640..a05da2da 100644
--- a/src/caosadvancedtools/cfood.py
+++ b/src/caosadvancedtools/cfood.py
@@ -415,7 +415,9 @@ def assure_object_is_in_list(obj, containing_object, property_name,
                                        datatype=datatype)
     # TODO: case where multiple times the same property exists is not treated
 
-    if not isinstance(containing_object.get_property(property_name).value, list):
+    if containing_object.get_property(property_name).value is None:
+        containing_object.get_property(property_name).value = []
+    elif not isinstance(containing_object.get_property(property_name).value, list):
         containing_object.get_property(property_name).value = [
             containing_object.get_property(property_name).value]
         containing_object.get_property(property_name).datatype = datatype
@@ -674,7 +676,8 @@ def assure_has_property(entity, name, value, to_be_updated=None,
             tmp_value = el.value.id
 
         if isinstance(tmp_value, list):
-            tmp_value = [i.id if isinstance(i, db.Entity) else i for i in tmp_value]
+            tmp_value = [i.id if isinstance(
+                i, db.Entity) else i for i in tmp_value]
 
         if tmp_value == value:
             contained = True
-- 
GitLab