PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
104 stars 102 forks source link

La version de taxref n'apparaît pas dans les nouvelles observations occtax #3027

Open vprunet opened 6 months ago

vprunet commented 6 months ago

Version 2.14.1 Description du bug Après un clean install de geonature 2.14.1, une nouvelle observation saisie dans occtax apparait dans occtax et dans la synthèse sans mention de la version de taxref. La version de taxref n'apparaît pas dans les nouvelles observations occtax (tables pr_occtax.t_occurrences_occtax et gn_synthese.synthese ) Comportement attendu Prise en compte automatique de la version de taxref du schema taxonomie.

taxonomie.t_meta_taxref

La table taxonomie.t_meta_taxref est à jour (taxref 17)

referencial_name|version|update_date            |
----------------+-------+-----------------------+
Taxref          |     17|2024-05-01 19:32:29.421|

gn_commons.t_parameters

La table gn_commons.t_parameters n'est pas à jour

id_parameter|id_organism|parameter_name        |parameter_desc                                                                  |parameter_value|parameter_extra_value|
------------+-----------+----------------------+--------------------------------------------------------------------------------+---------------+---------------------+
           1|          2|taxref_version        |Version du référentiel taxonomique                                              |Taxref V16.0   |                     |
           3|          2|annee_ref_commune     |Année du référentiel géographique des communes utilisé                          |2017           |                     |
           4|          2|occtaxmobile_area_type|Type de zonage pour lequel la couleur des taxons est calculée pour Occtax-mobile|M5             |                     |

pr_occtax.t_occurrences_occtax

L'attribut meta_v_taxref vaut NULL pour les nouvelles observations. La valeur par défaut de cet attribut est bizarre (regardez bien, c'est une chaîne de caractères constante, alors que ce devrait être du code sql qui retourne une string).

'SELECT gn_commons.get_default_parameter(''taxref_version'')'::character varying

gn_synthese.synthese

L'attribut meta_v_taxref vaut NULL pour les nouvelles observations.

La valeur par défaut de cet attribut est

gn_commons.get_default_parameter('taxref_version'::text, NULL::integer);

La valeur retournée par cet appel est Taxref V16.0. Ce serait ok si la table était à jour.

Analyse

Je pense qu'il y a plusieurs erreurs imbriquées

A noter que l'insertion dans la synthèse reporte simplement la valeur de l'attribut meta_v_taxref de occtax. La valeur de l'attribut dans la synthèse est la même que celle dans occtax, le fait que cette valeur soit nulle ne change rien. La valeur par défaut n'est pas prise en compte dès lors qu'une valeur, même nulle, est fournie à l'insertion

camillemonchicourt commented 6 months ago

OK, alors il y avait eu des premières discussions sur le sujet ici : https://github.com/PnX-SI/GeoNature/pull/2339 Dans la 1.12.0 de TaxHub d'aout 2023, on a basculé la gestion de la version de Taxref au niveau du schéma taxonomie où cela a bien plus de sens et est mis à jour automatiquement quand on met à jour Taxref : https://github.com/PnX-SI/TaxHub/issues/394

Suite à cela il était souhaité de supprimer le paramètre gn_commons.t_parameters.taxref_version, qui n'est plus utile, redondante et était rarement à jour.

Faut-il aussi supprimer les champs meta_v_taxref dans la foulée ? A priori oui, en suivant les indications de la dernière version du référentiel SINP Occurrences de taxons.

vprunet commented 6 months ago

En attendant qu'une décision soit prise sur ce champ meta_v_taxref, j'ai temporairement corrigé mon instance ainsi

-- correction version taxref dans gn_commons.t_parameters
UPDATE gn_commons.t_parameters
        SET parameter_value='Taxref V17.0'
        WHERE parameter_name= 'taxref_version';

-- correction de la valeur par défaut pour un taxon saisi dans occtax
ALTER TABLE pr_occtax.t_occurrences_occtax ALTER COLUMN meta_v_taxref 
SET DEFAULT gn_commons.get_default_parameter('taxref_version', NULL);

-- mise à jour des saisies occtax (à exécuter de temps à autres, ou alors écrire un trigger sur insertion).
update pr_occtax.t_occurrences_occtax
        set meta_v_taxref = DEFAULT
        where meta_v_taxref is null;

-- la synthèse est mise à jour automatiquement.