3.0 KiB

Actualisation de la BDC Status INPN à partir d'un dossier ZIP

1. Download BDC Status INPN

# TAXREF V17.0 - Version du 15 novembre 2024
wget https://inpn.mnhn.fr/docs-web/docs/download/232324
mv ./232324 ./BDC-Statuts-v17.zip

2.Correction des formats de fichiers

La dernière version de l'INPN fournis 2 fichier dont 1 fichier Excel. La mise à jour requière UNIQEMENT des fichiers CSV.

  • Décompresser le ZIP
  • Ouvrir le fichier Excel et enregistrer-le en CSV (encodage UTF8, séparateur virgule)
  • Reformer le ZIP

3. Intégration de la nouvelle BDC Statut

  • Connectez-vous à votre serveur GéoNature et ouvrez un terminal python
source geonature/backend/venv/bin/activate
geonature shell
  • Exécuter le script suivant en adaptant la variable BASE_URL (chemin d'accès vers le zip de la BDC Statut)
import os
import logging
from zipfile import ZipFile
import importlib.resources

from apptax.taxonomie.commands.utils import truncate_bdc_statuts
from apptax.database import db
from apptax.taxonomie.commands.utils import (
    copy_from_csv,
    refresh_taxref_vm,
    populate_bdc_statut_cor_text_area,
)

logger = logging.getLogger()

BASE_URL = "/home/geonatureadmin/tmp"
zipfile = "BDC-Statuts-v17.zip"
status_types_file = "BDC-Statuts-v17/BDC_STATUTS_TYPES_17.csv"
status_file = "BDC-Statuts-v17/BDC_STATUTS_17.csv"

truncate_bdc_statuts()
db.session.commit()


archive = ZipFile(os.path.join(BASE_URL, zipfile), "r")
with archive.open(status_file) as f:
    logger.info("Insert BDC statuts…")
    copy_from_csv(
        f,
        "bdc_statut",
        dest_cols=(
            "cd_nom",
            "cd_ref",
            "cd_sup",
            "cd_type_statut",
            "lb_type_statut",
            "regroupement_type",
            "code_statut",
            "label_statut",
            "rq_statut",
            "cd_sig",
            "cd_doc",
            "lb_nom",
            "lb_auteur",
            "nom_complet_html",
            "nom_valide_html",
            "regne",
            "phylum",
            "classe",
            "ordre",
            "famille",
            "group1_inpn",
            "group2_inpn",
            "lb_adm_tr",
            "niveau_admin",
            "cd_iso3166_1",
            "cd_iso3166_2",
            "full_citation",
            "doc_url",
            "thematique",
            "type_value",
        ),
    )

logger.info("Populate BDC statuts…")
db.session.execute(
    importlib.resources.read_text("apptax.migrations.data", "taxonomie_bdc_statuts.sql")
)

populate_bdc_statut_cor_text_area(logger)
refresh_taxref_vm()
db.session.commit()

exit()

4. Reformer les liens BDC Statut vs areas

geonature taxref link-bdc-statut-to-areas
# Rendre accessible les status concernés par un département
# L'argument -d peut être répété dans le cas de plusieurs département
# Il est possible qu'il faille au préalable désactiver tous les status de la table bdc_statut_text
geonature taxref enable-bdc-statut-text --clean -d 38