diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-03-08 13:49:08 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-03-08 13:49:08 +0100 | 
| commit | 8da5aeb18cab007ebdb5623b80fe82f0378b4491 (patch) | |
| tree | 76533d9bc0562b05355eb79b01ee7ad71756f692 /ishtar_common/models_imports.py | |
| parent | 846b0e2cc8d4c7616c8aa44b56f623f87f8f027a (diff) | |
| download | Ishtar-8da5aeb18cab007ebdb5623b80fe82f0378b4491.tar.bz2 Ishtar-8da5aeb18cab007ebdb5623b80fe82f0378b4491.zip | |
Manage autorefresh for import page (refs #3951)
Diffstat (limited to 'ishtar_common/models_imports.py')
| -rw-r--r-- | ishtar_common/models_imports.py | 33 | 
1 files changed, 25 insertions, 8 deletions
| diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index e0a144adc..b6b68d5a6 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -39,7 +39,8 @@ from django.utils.functional import cached_property  from django.utils.translation import ugettext_lazy as _, pgettext_lazy  from ishtar_common.utils import create_slug, \ -    get_all_related_m2m_objects_with_model, put_session_message +    get_all_related_m2m_objects_with_model, put_session_message, \ +    put_session_var, get_session_var  from ishtar_common.data_importer import Importer, ImportFormater, \      IntegerFormater, FloatFormater, UnicodeFormater, DateFormater, \      TypeFormater, YearFormater, StrToBoolean, FileFormater, InseeFormater @@ -822,8 +823,8 @@ class Import(models.Model):          help_text=_(u'If set to true, do not overload existing values.'))      creation_date = models.DateTimeField(          _(u"Creation date"), auto_now_add=True, blank=True, null=True) -    end_date = models.DateTimeField(_(u"End date"), blank=True, -                                    null=True, editable=False) +    end_date = models.DateTimeField(_(u"End date"), auto_now_add=True, +                                    blank=True, null=True, editable=False)      seconds_remaining = models.IntegerField(          _(u"Remaining seconds"), blank=True, null=True, editable=False) @@ -922,24 +923,29 @@ class Import(models.Model):      def initialize(self, user=None):          self.state = 'AP' +        self.end_date = datetime.datetime.now()          self.save()          self.get_importer_instance().initialize(self.data_table,                                                  user=user, output='db')          self.state = 'A' +        self.end_date = datetime.datetime.now()          self.save()      def delayed_importation(self, session_key):          if not settings.USE_BACKGROUND_TASK:              return self.importation(session_key=session_key) -        put_session_message(session_key, -                            unicode(_(u"Import added to the queue")), -                            "warning") +        put_session_message( +            session_key, +            unicode(_(u"Import {} added to the queue")).format(self.name), +            "info")          self.state = 'IQ' +        self.end_date = datetime.datetime.now()          self.save()          return delayed_import(self.pk, session_key)      def importation(self, session_key=None):          self.state = 'IP' +        self.end_date = datetime.datetime.now()          self.save()          importer = self.get_importer_instance()          try: @@ -952,6 +958,11 @@ class Import(models.Model):                          self.imported_file),                      "warning"                  ) +                ids = get_session_var(session_key, 'current_import_id') +                if not ids: +                    ids = [] +                ids.append(self.pk) +                put_session_var(session_key, 'current_import_id', ids)              self.state = 'FE'              self.save()              return @@ -970,26 +981,32 @@ class Import(models.Model):                  ContentFile(importer.get_csv_errors().encode('utf-8'))              )              msg = unicode(_(u"Import {} finished with errors")).format( -                self.imported_file) +                self.name)              msg_cls = "warning"          else:              self.state = 'F'              self.error_file = None              msg = unicode(_(u"Import {} finished with no errors")).format( -                self.imported_file) +                self.name)              msg_cls = "primary"          if session_key:              put_session_message(session_key, msg, msg_cls) +            ids = self.request.session['current_import_id'] \ +                if 'current_import_id' in self.request.session else [] +            ids.append(self.pk) +            put_session_var(session_key, 'current_import_id', ids)          if importer.match_table:              match_file = filename + "_match_%s.csv" % now              self.match_file.save(                  match_file,                  ContentFile(importer.get_csv_matches().encode('utf-8'))              ) +        self.end_date = datetime.datetime.now()          self.save()      def archive(self):          self.state = 'AC' +        self.end_date = datetime.datetime.now()          self.save()      def get_all_imported(self): | 
