diff options
Diffstat (limited to 'ishtar_common/data_importer.py')
| -rw-r--r-- | ishtar_common/data_importer.py | 35 | 
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 | 
