summaryrefslogtreecommitdiff
path: root/ishtar_common/models_imports.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-03-15 09:52:32 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-03-27 17:52:07 +0200
commit54daa385a241ad272abe9e06a63a0da36ff17749 (patch)
treea4071ff51a08618ad9d8c3f4fec1d0dc7869ca11 /ishtar_common/models_imports.py
parent96ce026e838b0f391d995a69d7eaca3abaf1912b (diff)
downloadIshtar-54daa385a241ad272abe9e06a63a0da36ff17749.tar.bz2
Ishtar-54daa385a241ad272abe9e06a63a0da36ff17749.zip
Step by step import - WIP - refs #3975
Diffstat (limited to 'ishtar_common/models_imports.py')
-rw-r--r--ishtar_common/models_imports.py28
1 files changed, 18 insertions, 10 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py
index c3fbaa92d..10124b024 100644
--- a/ishtar_common/models_imports.py
+++ b/ishtar_common/models_imports.py
@@ -170,7 +170,7 @@ class ImporterType(models.Model):
if column.export_field_name:
LINE_EXPORT_FORMAT.append(
ImportFormater(column.export_field_name,
- label=column.label)
+ label=column.label)
)
continue
force_news = []
@@ -196,6 +196,7 @@ class ImporterType(models.Model):
formater_kwargs['label'] = column.label
formater_kwargs['required'] = column.required
formater_kwargs['force_new'] = force_news
+ formater_kwargs['comment'] = column.description
if column.export_field_name:
formater_kwargs['export_field_name'] = [
column.export_field_name]
@@ -865,9 +866,11 @@ class Import(models.Model):
if self.state == 'A':
actions.append(('A', _(u"Re-analyse")))
actions.append(('I', _(u"Launch import")))
+ actions.append(('IS', _(u"Step by step import")))
if self.state in ('F', 'FE'):
actions.append(('A', _(u"Re-analyse")))
actions.append(('I', _(u"Re-import")))
+ actions.append(('IS', _(u"Step by step import")))
actions.append(('AC', _(u"Archive")))
if self.state == 'AC':
actions.append(('A', _(u"Unarchive")))
@@ -946,21 +949,22 @@ class Import(models.Model):
self.save()
return delayed_import(self.pk, session_key)
- def importation(self, session_key=None):
+ def importation(self, session_key=None, line_to_process=None,
+ simulate=False, return_importer_and_data=False):
self.state = 'IP'
self.end_date = datetime.datetime.now()
self.save()
importer = self.get_importer_instance()
try:
- importer.importation(self.data_table, user=self.user)
+ data = importer.importation(
+ self.data_table, user=self.user,
+ line_to_process=line_to_process, simulate=simulate)
except IOError:
+ error_message = unicode(_(u"Error on imported file: {}")).format(
+ self.imported_file)
+ importer.errors = [error_message]
if session_key:
- put_session_message(
- session_key,
- unicode(_(u"Error on imported file: {}")).format(
- self.imported_file),
- "warning"
- )
+ put_session_message(session_key, error_message, "warning")
ids = get_session_var(session_key, 'current_import_id')
if not ids:
ids = []
@@ -968,7 +972,9 @@ class Import(models.Model):
put_session_var(session_key, 'current_import_id', ids)
self.state = 'FE'
self.save()
- return
+ if not return_importer_and_data:
+ return
+ return importer, None
# result file
filename = slugify(self.importer_type.name)
now = datetime.datetime.now().isoformat('-').replace(':', '')
@@ -1006,6 +1012,8 @@ class Import(models.Model):
)
self.end_date = datetime.datetime.now()
self.save()
+ if return_importer_and_data:
+ return importer, data
def archive(self):
self.state = 'AC'