diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-05-07 15:36:12 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-05-07 15:41:50 +0200 |
commit | 3c20f955b08f8082ec624c8c12dc991e5069d420 (patch) | |
tree | ba6d69336195e90df53928274de9746436bb1697 /ishtar_common | |
parent | eb0f7d6c72487a9bdaa92f7f80b2231d1d3716f0 (diff) | |
download | Ishtar-3c20f955b08f8082ec624c8c12dc991e5069d420.tar.bz2 Ishtar-3c20f955b08f8082ec624c8c12dc991e5069d420.zip |
Imports: use the first formater for duplicates fields
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/data_importer.py | 24 | ||||
-rw-r--r-- | ishtar_common/models.py | 4 | ||||
-rw-r--r-- | ishtar_common/models_imports.py | 8 |
3 files changed, 19 insertions, 17 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 179dfc329..847134085 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -1387,17 +1387,19 @@ class Importer(object): force_news = [force_new] concats = formater.concat concat_str = [concat_str] - for duplicate_field in formater.duplicate_fields: - if type(duplicate_field[0]) in (list, tuple): - duplicate_field, force_new, concat, conc_str = \ - duplicate_field[idx_v] - else: - duplicate_field, force_new, concat, conc_str = \ - duplicate_field - field_names += [duplicate_field] - force_news += [force_new] - concats += [concat] - concat_str += [conc_str] + if idx_fields == 0: + # duplicate fields are only for the first occurrence + for duplicate_field in formater.duplicate_fields: + if type(duplicate_field[0]) in (list, tuple): + duplicate_field, force_new, concat, conc_str = \ + duplicate_field[0] + else: + duplicate_field, force_new, concat, conc_str = \ + duplicate_field + field_names += [duplicate_field] + force_news += [force_new] + concats += [concat] + concat_str += [conc_str] if formater.through: self._throughs.append((formater, value)) diff --git a/ishtar_common/models.py b/ishtar_common/models.py index b804739ad..d0612d648 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2706,7 +2706,7 @@ def get_external_id(key, item): formula = getattr(profile, key) dct = {} for fkey in PARSE_FORMULA.findall(formula): - filtered = fkey.split(u'|') + filtered = fkey.split('|') initial_key = fkey[:] fkey = filtered[0] filters = [] @@ -2740,7 +2740,7 @@ def get_external_id(key, item): value = values[0] for filtr in values[1:]: if filtr not in FORMULA_FILTERS: - value += u'||' + filtr + value += '||' + filtr continue value = FORMULA_FILTERS[filtr](value) return value diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index d64b8441c..4170ea1e2 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -206,7 +206,7 @@ class ImporterType(models.Model): force_news = [] concat_str = [] concat = [] - for target in column.targets.all(): + for target in column.targets.order_by("pk").all(): ft = target.formater_type.get_formater_type( target, import_instance=import_instance) if not ft: @@ -444,11 +444,11 @@ class ImporterColumn(models.Model): return self.importer_type.slug, self.col_number def targets_lbl(self): - return u', '.join([target.target for target in self.targets.all()]) + return ', '.join([target.target for target in self.targets.all()]) def duplicate_fields_lbl(self): - return u', '.join([dp.field_name or u"" - for dp in self.duplicate_fields.all()]) + return ', '.join([dp.field_name or "" + for dp in self.duplicate_fields.all()]) class ImporterDuplicateFieldManager(models.Manager): |