summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-03-22 11:35:28 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-04-24 19:41:37 +0200
commit59b741759031d6b154c6360ecdbd1d8c874b43cf (patch)
tree60a88b1810fe71923a36b82fe098512464577e15 /ishtar_common
parent51f9d2c42ebcb564dd12a9701722738c1f83dbe2 (diff)
downloadIshtar-59b741759031d6b154c6360ecdbd1d8c874b43cf.tar.bz2
Ishtar-59b741759031d6b154c6360ecdbd1d8c874b43cf.zip
Step by step import: fix management of JSON fields
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/utils.py9
-rw-r--r--ishtar_common/views.py11
2 files changed, 17 insertions, 3 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index 7a51936b1..43676c998 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -51,6 +51,15 @@ from django.utils.translation import ugettext_lazy as _, ugettext
from django.template.defaultfilters import slugify
+def dict_to_tuple(dct):
+ values = []
+ for k, v in dct.items():
+ if isinstance(v, dict):
+ v = dict_to_tuple(v)
+ values.append((k, v))
+ return tuple(values)
+
+
class BColors:
"""
Bash colors. Don't forget to finish your colored string with ENDC.
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 02966e88f..21b97cf01 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -63,7 +63,8 @@ from ishtar_common.forms import FinalForm, FinalDeleteForm
from ishtar_common.models import get_current_profile
from ishtar_common.templatetags.link_to_window import simple_link_to_window
from ishtar_common.utils import clean_session_cache, CSV_OPTIONS, \
- get_field_labels_from_path, get_random_item_image_link, shortify
+ get_field_labels_from_path, get_random_item_image_link, shortify, \
+ dict_to_tuple
from ishtar_common.widgets import JQueryAutoComplete
from views_item import CURRENT_ITEM_KEYS, CURRENT_ITEM_KEYS_DICT, \
@@ -1331,7 +1332,9 @@ class ImportStepByStepView(IshtarMixin, LoginRequiredMixin, TemplateView):
lbl += u'</i>'
headers.append(lbl)
- field_name = formater.field_name[0]
+ field_name = ""
+ if formater.field_name:
+ field_name = formater.field_name[0]
if formater.export_field_name:
field_name = formater.export_field_name[0]
value = self.new_data[0].copy()
@@ -1376,9 +1379,11 @@ class ImportStepByStepView(IshtarMixin, LoginRequiredMixin, TemplateView):
for key, value in created_dict.items():
if isinstance(value, list):
value = tuple(sorted(value))
+ if isinstance(value, dict):
+ value = dict_to_tuple(value)
dct_key.append((key, value))
key = (cls, tuple(sorted(dct_key)))
- if key in new_objects:
+ if key in list(new_objects.keys()):
# regroup it
new_objects[key][0].append(label)
continue