diff options
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 |
commit | 1e05946531d237dc954f46ddfc25a6b61c084a74 (patch) | |
tree | 8b9137dd9b68121db86e4e22dfdb7b7016a6f1ad /ishtar_common/utils.py | |
parent | 4779acd3006e6d6b17babd13585a4d83fb8d2332 (diff) | |
parent | 9eced41d76545bd2921605b7b81bd14b875ce541 (diff) | |
download | Ishtar-1e05946531d237dc954f46ddfc25a6b61c084a74.tar.bz2 Ishtar-1e05946531d237dc954f46ddfc25a6b61c084a74.zip |
Merge branch 'develop'
Diffstat (limited to 'ishtar_common/utils.py')
-rw-r--r-- | ishtar_common/utils.py | 10 |
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] |