summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-03-29 14:12:29 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-03-29 14:12:29 +0200
commitb7b609dcf3dad3bab338297d6a32a44f229f3e53 (patch)
tree6b0660d95e9ec53b9e8f77d01b267b4a9dd5df23 /ishtar_common/views.py
parent05cb206a700dc6c555759d5ea080d869ad2858ef (diff)
downloadIshtar-b7b609dcf3dad3bab338297d6a32a44f229f3e53.tar.bz2
Ishtar-b7b609dcf3dad3bab338297d6a32a44f229f3e53.zip
Fixes for not imported columns on step by step import. Tests for this feature.
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 1536868d4..d4fb68004 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1948,7 +1948,10 @@ class ImportStepByStepView(IshtarMixin, LoginRequiredMixin, TemplateView):
line_nb = self.imprt_obj.get_number_of_lines()
total_line_nb = self.imprt_obj.skip_lines + line_nb
delta = int((self.current_line_number + 1) / pagination_step)
- already_imported = self.imprt_obj.imported_line_numbers.split(',')
+
+ already_imported = []
+ if self.imprt_obj.imported_line_numbers:
+ already_imported = self.imprt_obj.imported_line_numbers.split(',')
dct['page_is_last'] = self.current_line_number == line_nb
dct['page_numbers'] = [] # label, number, enabled, is_imported
@@ -1981,7 +1984,8 @@ class ImportStepByStepView(IshtarMixin, LoginRequiredMixin, TemplateView):
dct['errors'] = self.errors
if self.errors:
if self.imprt.current_csv_line:
- headers = [f.label for f in self.imprt.get_formaters()]
+ headers = [f.label if f else _(u"Not imported")
+ for f in self.imprt.get_formaters()]
dct['values'] = zip(
range(1, len(headers) + 1), headers,
self.imprt.current_csv_line
@@ -1989,6 +1993,10 @@ class ImportStepByStepView(IshtarMixin, LoginRequiredMixin, TemplateView):
return dct
headers, self.path_to_column, interpreted_values = [], {}, []
for idx, formater in enumerate(self.imprt.get_formaters()):
+ if not formater:
+ headers.append(_(u"Not imported"))
+ interpreted_values.append(u"&ndash;")
+ continue
lbl = formater.label
if formater.comment:
lbl += u' <i data-toggle="tooltip" class="fa '
@@ -1997,6 +2005,7 @@ class ImportStepByStepView(IshtarMixin, LoginRequiredMixin, TemplateView):
formater.comment.replace(u'"', u'&quot;'))
lbl += u'</i>'
headers.append(lbl)
+
field_name = formater.field_name[0]
if formater.export_field_name:
field_name = formater.export_field_name[0]
@@ -2011,16 +2020,17 @@ class ImportStepByStepView(IshtarMixin, LoginRequiredMixin, TemplateView):
self.path_to_column[current_field_name].append(idx)
field_name_tuple.pop()
- for idx, key in enumerate(field_name.split('__')):
+ for idx_split, key in enumerate(field_name.split('__')):
if isinstance(value, dict) and key in value:
value = value[key]
- elif not idx:
+ elif not idx_split:
# no key reach
value = None
else:
break
value = self.get_value(value)
interpreted_values.append(value)
+
dct['values'] = zip(
range(1, len(headers) + 1), headers, self.imprt.current_csv_line,
interpreted_values