Code source de geonature.utils.utilsgeometrytools

"""
    Fonctions permettant de manipuler de façon génériques
    les fonctions de flask_sqla_geo
"""

from pathlib import Path

from flask import current_app

from geonature.utils import filemanager


[docs] def export_as_geo_file(export_format, export_view, db_cols, geojson_col, data, file_name): """Fonction générant un fixhier export au format shp ou gpkg .. :quickref: Utils; Fonction générant un fixhier export au format shp ou gpkg :param export_format: format d'export :type export_format: str() gpkg ou shapefile :param export_view: Table correspondant aux données à exporter :type export_view: GenericTableGeo :param db_cols: Liste des colonnes :type db_cols: list :param geojson_col: Nom de la colonne contenant le geojson :type geojson_col: str :param data: Résulats :type data: list :param file_name: Résulats :type file_name: str :returns: Répertoire où sont stockées les données et nom du fichier avec son extension """ if export_format == "gpkg": geo_format = "gpkg" dir_path = Path(current_app.config["MEDIA_FOLDER"]) / "geopackages" dwn_extension = "gpkg" elif export_format == "shapefile": geo_format = "shp" dir_path = Path(current_app.config["MEDIA_FOLDER"]) / "shapefiles" dwn_extension = "zip" dir_path.mkdir(parents=True, exist_ok=True) dir_path = str(dir_path) filemanager.delete_recursively(dir_path, excluded_files=[".gitkeep"]) export_view.as_geofile( export_format=geo_format, db_cols=db_cols, geojson_col=geojson_col, data=data, dir_path=dir_path, file_name=file_name, ) return dir_path, file_name + "." + dwn_extension