summaryrefslogtreecommitdiff
path: root/ishtar_common/data_importer.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-05-05 10:23:24 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2020-05-05 10:23:24 +0200
commit9f4eb84a516178eb48c4d381dac0f3eb1c9d9548 (patch)
tree253c674f650317de30dde9dc85beae7722c8b299 /ishtar_common/data_importer.py
parent05415db1c4297ecbbcce470e3bea4154e626feab (diff)
downloadIshtar-9f4eb84a516178eb48c4d381dac0f3eb1c9d9548.tar.bz2
Ishtar-9f4eb84a516178eb48c4d381dac0f3eb1c9d9548.zip
Import: multiple target for column not for regex split anymore
Diffstat (limited to 'ishtar_common/data_importer.py')
-rw-r--r--ishtar_common/data_importer.py35
1 files changed, 20 insertions, 15 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py
index 8ce613755..b500baa3f 100644
--- a/ishtar_common/data_importer.py
+++ b/ishtar_common/data_importer.py
@@ -1259,7 +1259,6 @@ class Importer(object):
c_row.append(_('Not imported'))
return
- # regex management
if formater.regexp:
# multiline regexp is a mess...
val = val.replace('\n', NEW_LINE_BREAK)
@@ -1286,18 +1285,21 @@ class Importer(object):
val_group.append(
g.replace(NEW_LINE_BREAK, '\n') if g else ''
)
- else:
- val_group = [val]
+ val = "".join(val_group)
+
+ field_names = formater.field_name
+ if not isinstance(field_names, (list, tuple)):
+ field_names = [field_names]
c_values = []
- for idx_v, v in enumerate(val_group):
+ for idx_fields, field_name in enumerate(field_names):
func = formater.formater
if type(func) in (list, tuple):
- func = func[idx_v]
+ func = func[idx_fields]
if not callable(func) and type(func) == str:
func = getattr(self, func)
- values = [v]
+ values = [val]
many_values = getattr(func, 'many_split', None)
if many_values:
values = re.split(func.many_split, values[0])
@@ -1311,14 +1313,14 @@ class Importer(object):
field_name = formater.field_name
force_new = formater.force_new
if type(field_name) in (list, tuple):
- field_name = field_name[idx_v]
+ field_name = field_name[idx_fields]
if type(force_new) in (list, tuple):
- force_new = force_new[idx_v]
+ force_new = force_new[idx_fields]
if formater.concat:
self.concats.add(field_name)
concat_str = formater.concat_str
if type(formater.concat_str) in (list, tuple):
- concat_str = concat_str[idx_v]
+ concat_str = concat_str[idx_fields]
if concat_str:
self.concat_str[field_name] = concat_str
@@ -1326,19 +1328,22 @@ class Importer(object):
formater.import_instance = self.import_instance
formater.reinit_db_target(
self.DB_TARGETS["{}-{}".format(idx_col + 1, field_name)],
- idx_v)
+ idx_fields)
for idx, v in enumerate(values):
try:
+ """
+ # disable regex cut
if formater.regexp_formater_args:
args = []
- for idx in formater.regexp_formater_args[idx_v]:
+ for idx in formater.regexp_formater_args[idx_fields]:
args.append(val_group[idx])
value = func.format(*args)
else:
- if getattr(func, 'need_archive', False):
- value = func.format(v, archive=self.archive)
- else:
- value = func.format(v)
+ """
+ if getattr(func, 'need_archive', False):
+ value = func.format(v, archive=self.archive)
+ else:
+ value = func.format(v)
except ValueError as e:
if formater.required:
self.c_errors = True