summaryrefslogtreecommitdiff
path: root/ishtar_common/utils.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-01-11 16:19:59 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-01-11 16:19:59 +0100
commit1e05946531d237dc954f46ddfc25a6b61c084a74 (patch)
tree8b9137dd9b68121db86e4e22dfdb7b7016a6f1ad /ishtar_common/utils.py
parent4779acd3006e6d6b17babd13585a4d83fb8d2332 (diff)
parent9eced41d76545bd2921605b7b81bd14b875ce541 (diff)
downloadIshtar-1e05946531d237dc954f46ddfc25a6b61c084a74.tar.bz2
Ishtar-1e05946531d237dc954f46ddfc25a6b61c084a74.zip
Merge branch 'develop'
Diffstat (limited to 'ishtar_common/utils.py')
-rw-r--r--ishtar_common/utils.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index 4f968af31..ff67fc470 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -145,18 +145,24 @@ def check_model_access_control(request, model, available_perms=None):
return allowed, own
-def update_data(data_1, data_2):
+def update_data(data_1, data_2, merge=False):
"""
Update a data directory taking account of key detail
"""
res = {}
if not isinstance(data_1, dict) or not isinstance(data_2, dict):
+ if data_2 and not data_1:
+ return data_2
+ if not merge:
+ return data_1
+ if data_2 and data_2 != data_1:
+ return data_1 + u" ; " + data_2
return data_1
for k in data_1:
if k not in data_2:
res[k] = data_1[k]
else:
- res[k] = update_data(data_1[k], data_2[k])
+ res[k] = update_data(data_1[k], data_2[k], merge=merge)
for k in data_2:
if k not in data_1:
res[k] = data_2[k]