summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2023-11-29 16:27:38 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-02-05 10:51:52 +0100
commit5069dfafbc266a1962489fb78765db0f2accbb4b (patch)
tree784763d4e6216ffbad45d2e2f7deb2e9c63241e7
parent99c4e4f260c37da59cacfe4c21383f3ed442e00f (diff)
downloadIshtar-5069dfafbc266a1962489fb78765db0f2accbb4b.tar.bz2
Ishtar-5069dfafbc266a1962489fb78765db0f2accbb4b.zip
🐛 import GIS: fix number of line evaluation
-rw-r--r--ishtar_common/models_imports.py11
-rw-r--r--ishtar_common/views.py3
2 files changed, 10 insertions, 4 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py
index 8033d7c45..4ab37e8d5 100644
--- a/ishtar_common/models_imports.py
+++ b/ishtar_common/models_imports.py
@@ -2153,9 +2153,10 @@ class Import(BaseImport):
def get_number_of_lines(self):
if self.number_of_line:
return self.number_of_line
- if self.importer_type.type == "gis":
- return
imported_values = self.get_imported_values()
+ if (not imported_values or not imported_values.path or not imported_values.path.endswith(".csv")) \
+ and self.importer_type.type == "gis":
+ return self._data_table_gis(get_number_only=True)
if not imported_values or not imported_values.path:
return
filename = imported_values.path
@@ -2325,7 +2326,7 @@ class Import(BaseImport):
def get_gis_attr(self):
return self._data_table_gis(get_gis_attr=True)
- def _data_table_gis(self, get_gis_attr=False):
+ def _data_table_gis(self, get_gis_attr=False, get_number_only=False):
self.gis_attr = None
imported_values = self.get_imported_values().path
tmp_dir = None
@@ -2407,9 +2408,11 @@ class Import(BaseImport):
# Warning: RuntimeWarning: Sequential read of iterator was interrupted.
# Resetting iterator.
# not relevant -> bug in fiona 1.8.18 (fixed in 1.8.19)
- if not self.number_of_line:
+ if not self.number_of_line or get_number_only:
self.number_of_line = len(collection)
self.save()
+ if get_number_only:
+ return self.number_of_line
for idx, feature in enumerate(collection):
try:
line = [
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 9936e91e0..55a5947c0 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1097,6 +1097,7 @@ show_area = show_item(models.Area, "area")
show_import = show_item(models.Import, "import")
show_import_group = show_item(models.ImportGroup, "importgroup")
+
def action(request, action_slug, obj_id=None, *args, **kwargs):
"""
Action management
@@ -2146,6 +2147,8 @@ def import_get_status(request, current_right=None):
"has_error": item.has_error
}
if key == "import":
+ if item.current_line and not item.number_of_line:
+ item.get_number_of_lines()
item_dct.update({
"current_line": item.current_line,
"number_of_line": item.number_of_line,