diff options
Diffstat (limited to 'ishtar_common/data_importer.py')
| -rw-r--r-- | ishtar_common/data_importer.py | 13 | 
1 files changed, 12 insertions, 1 deletions
| diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 8d53d78f1..2963fa680 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -625,6 +625,9 @@ class Importer(object):              data['history_modifier'] = self.history_modifier          obj, created = self.get_object(self.OBJECT_CLS, data) +        if self.import_instance and hasattr(obj, 'imports'): +            obj.imports.add(self.import_instance) +          if created:              self.number_created += 1          else: @@ -660,6 +663,8 @@ class Importer(object):                  for k in data['defaults']:                      setattr(t_obj, k, data['defaults'][k])                  t_obj.save() +            if self.import_instance and hasattr(t_obj, 'imports'): +                t_obj.imports.add(self.import_instance)          for formater, val in self._post_processing:              formater.post_process(obj, data, val, owner=self.history_modifier) @@ -789,11 +794,15 @@ class Importer(object):                      val = data.pop(attribute)                      model = field_object.model                      if val.__class__ != model and type(val) == dict: +                        val['defaults'] = val.get('defaults', {})                          if 'history_modifier' in \                                  model._meta.get_all_field_names(): -                            val['history_modifier'] = self.history_modifier +                            val['defaults']['history_modifier'] = \ +                                                        self.history_modifier                          val, created = field_object.model.objects.get_or_create(                                                                            **val) +                        if self.import_instance and hasattr(val, 'imports'): +                            val.imports.add(self.import_instance)                      m2ms.append((attribute, val))              path = tuple(path)              if path in self._defaults: @@ -814,6 +823,8 @@ class Importer(object):                      dct = create_dict.copy()                      dct['defaults'] = defaults                      obj, created = cls.objects.get_or_create(**create_dict) +                    if self.import_instance and hasattr(obj, 'imports'): +                        obj.imports.add(self.import_instance)                  except IntegrityError as e:                      raise IntegrityError(e.message)                  except: | 
