Closed alhyss closed 11 months ago
Fait pour ce qui concerne la récupération des modèles (soit en base, soit en local) et la gestion des copies locales des modèles pré-configurés. Comme suggéré ci-avant, il pourrait être intéressant de réaliser un travail similaire pour l'interrogation du schéma des métadonnées communes - plume.rdf.properties.read_shape_property
- et l'intégration des catégories locales dans PlumePg (fonctions query_from_shape
et admin.plume_pg._table_from_shape
).
Concerne notamment les données importées via
plume.pg.queries.query_get_categories
, soit les catégories associées à un modèle et tout leur paramétrage, ainsi queplume.pg.queries.query_list_template
(tous les modèles et leur paramétrage),plume.pg.queries.query_template_tabs
(les onglets d'un modèle et leur paramétrage)... Le principe serait de ne plus figer dans Plume la structure des données renvoyées par ces requêtes, afin de limiter les modifications à réaliser à chaque fois qu'un paramètre de configuration est ajouté. Aujourd'hui, cette structure est souvent définie non seulement dans le constructeur de requête deplume.pg.queries
, mais aussi dans la fonction qui désérialise le résultat - la fonction d'initialisation de la classeplume.pg.template.TemplateDict
, par exemple.Les requêtes d'import renverraient un dictionnaire JSON dont chaque clé correspond à un champ, construit avec une requête telle que :
Ce fonctionnement est parfaitement cohérent avec la logique de non exhaustivité des modèles, qui veut que Plume revienne au schéma des métadonnées communes pour tout ce qui n'est pas configuré par le modèle.
Cela permettrait aussi de retrouver un fichier
template.json
plus lisible, où les noms des champs apparaissent.Réciproquement, la fonction
admin.plume_pg._table_from_shape
ne devrait pas avoir à connaître exactement la structure de la table. Il pourrait par exemple être judicieux de récupérer en base les noms des champs, puis d'aller chercher les informations disponibles pour chacun danscategories
, sans que cela n'empêche de prévoir des traitements spécifiques pour quelques champs particuliers.