PnX-SI / GeoNature

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

Synthese - Remettre Organisme à plat ? #649

Open camillemonchicourt opened 5 years ago

camillemonchicourt commented 5 years ago

Plusieurs discussions tournent autour de ce sujet et on va souvent avoir besoin de filtrer les observations de la Synthèse par Organisme mais ne diffuser que les données d'un organisme par exemple (producteur uniquement à priori, ou aussi financeur etc.. ?).

Dans GeoNature V2, on a fait le choix de gérer les organismes au niveau des métadonnées. Cela a beaucoup d'avantage. Mais on peut se poser la question de remettre cette info à plat dans la Synthèse. Ca permettrait aussi de pouvoir distinguer des organismes différents sur des données d'un même JDD quand on importe depuis une source tiers.

gildeluermoz commented 5 years ago

Et tu stockerais quoi dans la synthèse ? id_organism seulement n'est pas possible (ou en mode array) car on est en nn. Une occurence concerne 1 à n organismes. id_organism + role de l'organisme (de gn_meta.cor_dataset_actor + gn_meta.cor_acquisition_framework_actor).

camillemonchicourt commented 5 years ago

Oui c'est la question aussi. Array des id ? Plus les rôles de chaque id ? Ou remettre totalement à plat ? Ou faire un pivot pour avoir un array d'id par type de rôle ?

A creuser si c'est pertinent et comment

Question aussi de la MAJ car si on ajouter un acteur sur le JDD il faut mettre a jour toutes les données du JDD. Donc pas sur du truc

DonovanMaillard commented 5 years ago

Pour notre usage ce que j'ai fait cedt simplement de récupérer les noms rôles des organismes dans la vue d'export.dans la mesure où cedt déjà consultable sur la modale dinfo via le jdd c'est suffisant je trouve

Ppur accélérer les jointures en revanche j'envisage de mettre une vm avec à plat l'id jdd et déjà la liste des acteurs et leur rôle. Ça fait une seule jointure à faire pour l. Export

gildeluermoz commented 5 years ago

potentiellement on peut tout remettre à plat dans la synthese. On a fait le choix de ne pas le faire pour les id des observateurs, tout en le faisant en mode txt, mais sans les fonctionnalités offertes par les id. Je pense que la remise à plat en synthese n'est pas une bonne idée dès qu'on passe en nn, sous peine de complexité (maj, manipulation des types array, triggers usine, risque d'erreur, etc...).Dans ces cas, l'usage des jointures me semble préférable.

Splendens commented 4 years ago

Je déterre ce post, car je me demandais également pourquoi les organismes n'étaient pas stockés dans la synthèse comme les observateurs... De toute évidence, la question a déjà été posée !

Avoir accès aux organismes directement dans la synthèse pourrait aussi être intéressant dans l'atlas, par exemple pour pouvoir afficher facilement le nom des organismes associées aux données, au même titre que les noms des observateurs. Cela me parait essentiel dans un contexte d'échanges de données, ou d'utilisateurs de GN rattachés à différents organismes... afin de créditer correctement les producteurs de données.

Après, il est toujours possible de faire, par exemple, une VM "synthèse" spéciale pour l'atlas avec ces infos. Mais je ne sais pas ce qui pourrait être le plus pertinent entre avoir une grosse table Synthèse ou avoir une table/VM de plus ?

EDIT :

En fait, je me rends compte que c'est en lien avec cette question : Permettre d'intégrer des données partenaires dans les observations ? #7 et la vieille PR qui n'a pas eu de suite : Affichage des organismes #157.

Du coup la question concernant le meilleur moyen de créditer les organismes à l'origine des données dans l'atlas est toujours ouverte !

camillemonchicourt commented 4 years ago

Pour lister les organismes dans la Synthèse (ou dans les exports Synthèse), il faut clarifier ce que l'on entend par organismes des données.

On peut parler des organismes acteurs du JDD de chaque donnée. Ou des organismes des observateurs des données.

Si il s'agit de remettre à plat les acteurs du JDD des données, alors c'est ce qu'on fait dans la vue de base du module d'Export : https://github.com/PnX-SI/gn_module_export/blob/master/data/exports.sql#L153-L162

Remettre à plat les organismes des observateurs serait intéressant aussi (tant qu'un observateur = 1 organisme comme actuellement), mais dans la Synthèse de GeoNature on a potentiellement beaucoup d'observateurs uniquement stockés en texte, donc non reliés à un id_role présent dans utilisateurs.t_roles.

Splendens commented 4 years ago

Question aussi de la MAJ car si on ajouter un acteur sur le JDD il faut mettre a jour toutes les données du JDD. Donc pas sur du truc

potentiellement on peut tout remettre à plat dans la synthese. On a fait le choix de ne pas le faire pour les id des observateurs, tout en le faisant en mode txt, mais sans les fonctionnalités offertes par les id. Je pense que la remise à plat en synthese n'est pas une bonne idée dès qu'on passe en nn, sous peine de complexité (maj, manipulation des types array, triggers usine, risque d'erreur, etc...).Dans ces cas, l'usage des jointures me semble préférable.

Effectivement, que ce soit avec les observateurs mis à plat ou les organismes, il faut penser à toutes les modifications possibles. Par exemple, actuellement si on change le nom / prénom d'un observateur (erreur de saisie, inversion des noms et prénoms à l'enregistrement... on voit de tout !), et bien les modifications ne sont pas répercutées dans la synthèse.

Pour les relations n-n, une table associative serait surement préférable, oui. Quitte à créer une VM ou vue spécifique pour GN-atlas, à la manière des exports (on peut considérer que les données visualisables dans un atlas sont des données exportées depuis un GN, comme elles pourraient l'être de n'importe quelle autre BD), plutôt qu'aller taper directement dans la synthèse.

camillemonchicourt commented 4 years ago

Par exemple, actuellement si on change le nom / prénom d'un observateur (erreur de saisie, inversion des noms et prénoms à l'enregistrement... on voit de tout !), et bien les modifications ne sont pas répercutées dans la synthèse.

J'ai pas compris où ? Dans Occtax, dans Synthèse ? Quand on est en mode texte ou liste ? Tu peux mettre un ticket sur le sujet dans GeoNature si il y a un soucis de ce genre ?

Splendens commented 4 years ago

Ok ça marche ! Cela concerne la Synthèse, pas Occtax. Je viens de refaire la manip : https://github.com/PnX-SI/GeoNature/issues/1018

jbrieuclp commented 4 years ago

De ce que je comprend de l'explication de @Splendens c'est que si un nom ou prénom est modifié dans la table utilisteurs.t_roles, ces modifications ne sont pas répercutées dans le champ observers de synthese. Dans ce cas il faudrait peut être se pencher sur les champs virtuels de #925 et tester leurs avantages (et/ou inconvénients ).