Open TheoLechemia opened 7 years ago
Je n'ai pas pré-rempli les champs pour laquelle la valeur par défaut est "ne sais pas" ou "inconnu". A discuter.
Je dirais que s'il y a une valeur par défaut qui va s'appliquer lors de l'écriture en base, il faut l'afficher à l'utilisateur afin qu'il soit informé de ce qui se passe réellement.
Par contre j'ai vu qu'en base les valeurs par défaut sont toujours remplis à partir de l’organisme 1: https://github.com/PnX-SI/GeoNature/blob/frontend-contact/data/modules/contact/contact.sql#L85 . Il faudrait gérer ça côté front si on met des valeurs par défaut en fonction de l'organisme
Il faut améliorer le comportement des valeurs par défaut en donnant la possibilité de définir des valeurs pour tous les organismes. Par exemple, si id_organism
est null alors on l'applique par défaut à tous les organismes, sauf si une autre valeur existe pour l'organisme (et pour ce paramètre).
Pour cela il faut modifier la base en supprimant le NOT NULL
de la FK sur pr_contact.defaults_nomenclatures_value.id_organism
et en modifiant la fonction pr_contact.get_default_nomenclature_value(myidtype integer, myidorganism integer)
Shit ! pr_contact.defaults_nomenclatures_value.id_organism
fait partie de la clé primaire, on ne peut pas supprimer le NOT NULL
!
A creuser
Un organisme 0 = tous les organismes ?
Ouais 0 c'est bien et c'est mieux qu'un NOT NULL je dirai.
D'accord aussi sur le fait de mettre les valeurs par defaut pour plus de champs car c fait en base de toute façon, ça permet de le rendre lisible.
Pas tres convaincu des verrous. Soit on implémente la recup de la saisie precedente soit non selon moi.
j'aime pas les comportements automatiques que l'utilisateur ne va pas forcement voir. C'est trop ambigu. Dans certains cas tu as des valeurs par défaut définies dans la base et dans d'autres l'utilisateur modifie ce comportement par défaut, sans le savoir, pour un cas et ça va s'appliquer sur le suivant à la place de la valeur par défaut habituelle et dont il a l'habitude. C'est source d'erreur. Le verrou correspond à une action définie, correspondant à une fonctionnalité qui est bien plus claire.
Ouais je comprends l'ambiguïté en effet. Mais je crains la multiplication des actions, des boutons et la complexité que ça entraine. Mettons ça de côté du coup le temps d'avoir plus de retours sur les besoins.
La valeur par défaut est définie dans chaque module.
Pour OCCTAX c'est dans pr_contact.defaults_nomenclatures_value
. Elle peut être définie pour chaque type de nomenclature ainsi que par organisme, règne et/ou group2inpn.
Si organisme = 0 alors la valeur par défaut s'applique à tous les organismes. Idem pour les règnes et group2inpn
La fonction pr_contact.get_default_nomenclature_value
permet de renvoyer l'id de la nomenclature par défaut.
Ces valeurs par défaut sont aussi utilisés pour certains champs qui sont cachés (statut_observation, floutage, statut_validation...) mais ne sont donc pas modifiables par l'utilisateur.
Si l'utilisateur modifie une des nomenclatures pour un taxon, cela remet les valeurs par défaut pour le taxon suivant.
Pour le moment, on garde ce comportement et on met de côté pour savoir quel est le bon comportement à garder à terme.
Il existe aussi une table globale de valeurs par défaut : ref_nomenclatures.defaults_nomenclatures_value
.
Elles peuvent être utiles pour les métadonnées par exemple mais à voir si une nomenclature a une valeur par défaut générale, mais pas de valeur par défaut dans le module, alors on pourrait utiliser la valeur par défaut générale dans le module.
Reste à voir :
Suite à la création d'une table des valeurs par défaut dans le schéma contact, j'ai implémenté les choses côté front pour pré-remplir certains champs. J'ai mis des valeurs par défaut uniquement sur les champs qui ne sont pas cachés pour ne pas entraîner d'erreurs. Donc ça concerne: Méthode d'observation => "vu" Etat biologique => "observé vivant" Objet du dénombrement => "individu". Je n'ai pas pré-rempli les champs pour laquelle la valeur par défaut est "ne sais pas" ou "inconnu". A discuter.
J'ai aussi mis en place le fait de récupérer les valeurs de l'occurrence précédente, pour les cas on on enchaîne pleins de relevés qui on la même technique d'observation, la même méthode d'observation etc... (voir https://github.com/PnX-SI/GeoNature/issues/279) Je l'ai mis en place pour les mêmes trois champs cité au dessus, mais pas pour les champs du dénombrement. A discuter aussi.
Par contre j'ai vu qu'en base les valeurs par défaut sont toujours remplis à partir de l’organisme 1: https://github.com/PnX-SI/GeoNature/blob/develop/data/modules/contact/contact.sql#L85 . Il faudrait gérer ça côté front si on met des valeurs par défaut en fonction de l'organisme