diff options
Diffstat (limited to 'ishtar_common/data_importer.py')
| -rw-r--r-- | ishtar_common/data_importer.py | 20 | 
1 files changed, 12 insertions, 8 deletions
| diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index b5a9d92f0..1954559cc 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -63,14 +63,15 @@ class ImportFormater(object):      def report_error(self, *args):          return -    def init(self, vals, output=None): +    def init(self, vals, output=None, import_instance=None):          try:              lst = iter(self.formater)          except TypeError:              lst = [self.formater]          for formater in lst:              if formater: -                formater.check(vals, output) +                formater.check(vals, output, +                               import_instance=import_instance)      def post_process(self, obj, context, value, owner=None):          raise NotImplemented() @@ -92,7 +93,7 @@ class Formater(object):      def format(self, value):          return value -    def check(self, values, output=None): +    def check(self, values, output=None, import_instance=None):          return  class UnicodeFormater(Formater): @@ -233,7 +234,7 @@ class StrChoiceFormater(Formater):          msgstr += unicode(_(u"%d. None of the above - skip")) % idx + u"\n"          return msgstr, idx -    def check(self, values, output=None): +    def check(self, values, output=None, import_instance=None):          if not output or output == 'silent':              return          if self.many_split: @@ -275,7 +276,8 @@ class StrChoiceFormater(Formater):          if output == 'db' and self.db_target:              from ishtar_common.models import TargetKey              for missing in self.missings: -                q = {'target':self.db_target, 'key':missing} +                q = {'target':self.db_target, 'key':missing, +                     'associated_import':import_instance}                  if TargetKey.objects.filter(**q).count():                      continue                  with transaction.commit_on_success(): @@ -374,7 +376,7 @@ class StrToBoolean(Formater):              value = slugify(value)          return value -    def check(self, values, output=None): +    def check(self, values, output=None, import_instance=None):          if not output or output == 'silent':              return          msgstr = unicode(_(u"Choice for \"%s\" is not available. "\ @@ -407,7 +409,8 @@ class StrToBoolean(Formater):              from ishtar_common.models import TargetKey              for missing in self.missings:                  try: -                    q = {'target':self.db_target, 'key':missing} +                    q = {'target':self.db_target, 'key':missing, +                         'associated_import':import_instance}                      TargetKey.objects.create(**q)                  except IntegrityError:                      pass @@ -491,7 +494,8 @@ class Importer(object):                  vals[idx_col].append(val)          for idx, formater in enumerate(self.line_format):              if formater and idx < len(vals): -                formater.init(vals[idx], output) +                formater.init(vals[idx], output, +                              import_instance=self.import_instance)      def importation(self, table, initialize=True):          if initialize: | 
