From 9718eaeaf7a7f654c29d88f67fe061312fbecbee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr>
Date: Sun, 3 Mar 2019 22:36:54 +0100
Subject: [PATCH] handle progress bar for dataframes

---
 django_diu/import_command.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/django_diu/import_command.py b/django_diu/import_command.py
index 75932fa..515b81a 100644
--- a/django_diu/import_command.py
+++ b/django_diu/import_command.py
@@ -74,7 +74,7 @@ class ImportTask(object):
         pass
 
     def _process_rows(self, rows):
-        for row in rows:
+        for idx, row in enumerate(rows):
             try:
                 new_object = None
                 with transaction.atomic():
@@ -93,6 +93,8 @@ class ImportTask(object):
                 if self.progress_bar == False:
                     self.out_stream.write(self.style.SUCCESS(
                         'Successfully inserted {}'.format(new_object)))
+            if self.progress_bar:
+                self.rows.update(idx)
 
     def count_source(self):
         self.source_count = len(self.rows)
@@ -101,7 +103,7 @@ class ImportTask(object):
         self.open_data_source()
         self.count_source()
         if self.progress_bar is True:
-            with click.progressbar(self.rows,
+            with click.progressbar(length=self.source_count,
                                 label='Importing ' + self.description + ' (' + str(self.source_count) + ' rows to process).') as rows_list:
                 self._process_rows(rows_list)
         else:
-- 
GitLab