From 7a85fa10b7086a1d37068d91fedd9d9730beb421 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com>
Date: Thu, 23 Jan 2020 10:57:07 +0100
Subject: [PATCH] up
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Henrik tom Wörden <h.tomwoerden@indiscale.com>
---
 src/caosdb/common/models.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/caosdb/common/models.py b/src/caosdb/common/models.py
index ac9321bb..495b4de5 100644
--- a/src/caosdb/common/models.py
+++ b/src/caosdb/common/models.py
@@ -981,6 +981,22 @@ class Entity(object):
 
         return self
 
+    def apply_to_ids(self, func):
+        self.id = func(self.id)
+
+        for par in self.parents:
+            par.id = func(par.id)
+
+        for prop in self.properties:
+            prop.id = func(prop.id)
+            isref = is_reference(prop.datatype)
+
+            if isref:
+                if isinstance(prop.value, list):
+                    prop.value = [func(el) for el in prop.value]
+                else:
+                    prop.value = func(prop.value)
+
 
 def _parse_col_values(cdt, vals):
     matcher = re.compile(r"^(?P<col>[^<]+)<(?P<dt>[^>]+)>$")
-- 
GitLab