diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-11-29 16:27:38 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-04-16 16:38:32 +0200 |
commit | e28a17667e5d6b63500211295ae09a0fa2c1135e (patch) | |
tree | 0629963763bd8a4d797a44489465601fee4c0f8b | |
parent | 90945fb1ad016c6521ee8cfc0c336cdfe388c9f8 (diff) | |
download | Ishtar-e28a17667e5d6b63500211295ae09a0fa2c1135e.tar.bz2 Ishtar-e28a17667e5d6b63500211295ae09a0fa2c1135e.zip |
🐛 import GIS: fix number of line evaluation
-rw-r--r-- | ishtar_common/models_imports.py | 11 | ||||
-rw-r--r-- | ishtar_common/views.py | 3 |
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, |