summaryrefslogtreecommitdiff
path: root/ishtar_common/models_imports.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models_imports.py')
-rw-r--r--ishtar_common/models_imports.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py
index 33d793333..dfd2b0a90 100644
--- a/ishtar_common/models_imports.py
+++ b/ishtar_common/models_imports.py
@@ -149,6 +149,17 @@ IMPORT_TYPES = (
IMPORT_TYPES_DICT = dict(IMPORT_TYPES)
+SPECIFIC_TYPES_COLUMNS = {
+ "point_2d": "Point2D",
+ "point_3d": "Point3D",
+ "multi_points": "MultiPoints",
+ "multi_line": "MultiLine",
+ "multi_polygon": "MultiPolygon",
+ "x": "X",
+ "y": "Y",
+ "z": "Z",
+}
+
class ImporterType(models.Model):
"""
@@ -455,6 +466,30 @@ class ImporterType(models.Model):
col_names.append(formater.label)
return cols, col_names
+ def get_columns_types(self, importer_class=None):
+ """
+ :param importer_class: importer class - if not provided get from self
+ :return: (list): return list of column types - each types is a string
+ """
+ if not importer_class:
+ importer_class = self.get_importer_class()
+ types = []
+ for formater in importer_class.LINE_EXPORT_FORMAT:
+ if not formater:
+ types.append("")
+ continue
+
+ ctype = ""
+ field_name = formater.field_name[0]
+ for k in SPECIFIC_TYPES_COLUMNS:
+ if field_name == k or field_name.endswith(f"__{k}"):
+ ctype = SPECIFIC_TYPES_COLUMNS[k]
+ break
+ if not ctype:
+ ctype = str(formater.formater[0])
+ types.append(ctype)
+ return types
+
def save(self, *args, **kwargs):
if not self.slug:
self.slug = create_slug(ImporterType, self.name)