PnX-SI / gn_mobile_occtax

Application mobile pour la saisie dans le module Occtax de GeoNature
GNU General Public License v3.0
13 stars 5 forks source link

Gestion des horaires lors de la saisie #104

Closed DonovanMaillard closed 2 years ago

DonovanMaillard commented 2 years ago

L'application permet de stocker l'heure de saisie, contenue dans les champs date. Mais cette heure n'est pas renvoyée dans les champs hour_min hour_max d'occtax (t_releves_occtax).

Faut il permettre de saisir des heures sur le mobile, faut il pouvoir choisir d'utiliser ou non l'heure de début/ fin de la saisie ? Dans tous les cas la gestion actuelle n'est pas homogène entre le mobile et le web

camillemonchicourt commented 2 years ago

Oui on avait pris le partie d'alléger Occtax-mobile au niveau des champs par rapport à Occtax-web. Notamment en se limitant à une date, pas plusieurs ni d'heure.

On peut les ajouter si besoin, quitte à les masquer par défaut.

DonovanMaillard commented 2 years ago

Je sais pas s'il est necessaire d'ajouter les champs min/max etc, en revanche la manière dont est renvoyée l'heure me semble discutable :

Soit on renvoie systématiquement 0:00:00 comme heure sur la date_min et date_max de l'obs avec le mobile, soit on prévoit un paramètre coché par l'utilisateur "enregistrer les horaires de saisie" qui renvoie les heures dans les champs hour_min hour_max ? Ou on le fait par défaut...

Se pose ensuite la question de l'heure conservée : début de la saisie, fin de la saisie, ou hour_min et hour_max qui correspondent respectivement au début et à la finalisation de la saisie ? L'idée étant que l'utilisateur n'ait pas à les saisir à la main, en général sur le mobile on saisit ce qu'on voit en direct...

camillemonchicourt commented 2 years ago

En effet il y a un soucis vu ce que tu indiques.

Je pense qu'il ne faut pas le faire de manière transparente avec l'heure de saisie qui peut être différente de l'heure d'observation.

Si on veut ajouter les champs heures, alors il faut les afficher, les pré-remplir avec la date de saisie, pas besoin de case à cocher, mais permettre à l'utilisateur de les modifier. Attention par contre, on doit garder la possibilité de les masquer, mais dans ce cas, cela risque de pousser l'heure de saisie de manière transparente et donc non souhaitable.

Je pense aussi que ce que l'on fait en web n'est pas idéal car on duplique une info. Le champs DATE ne devrait stocker qu'une date et pas d'heure, et le champs heure l'heure si elle est renseignée.

DonovanMaillard commented 2 years ago

c'est ça, d'autant qu'on stocke l'heure + l'heure si renseigné, et minuit+NULL si non renseigné. Donc soit le champs date ne prend qu'une date, ça semblerait le mieux, soit on stocke date et heure dans un seul champs timestamp, comme aujourd'hui mais en supprimant les champs hour_min et hour_max

Le mieux serait peut-être en effet de pouvoir saisir les heures début/fin, en pré-remplissant par défaut avec l'heure de début de la saisie... Et de pouvoir masquer ces champs dans la conf (masqué par défaut si tu veux oui) auquel cas on renvoie NULL et non pas l'heure de saisie...

DonovanMaillard commented 2 years ago

Fera partie des corrections dans les versions 2.x à venir en 2022

sgrimault commented 2 years ago

Actuellement on a :

Pour cette évolution on aura donc :

Dites moi si c'est correct pour vous :)

Je serai d'avis de supprimer les attributs hour_min et hour_max coté GeoNature et d'uniformiser les dates en ne gardant que les attributs date_min et date_max au format ISO 8601 avec la composante heure.

DonovanMaillard commented 2 years ago

Merci Sébastien,

Seule remarque, si on active par configuration la saisie des horaires il serait bien que par defaut, heure min = heure max = par defaut l'heure de création du relevé, modifiable par l'utilisateur.

Il y a un ticket en cours pour uniformiser les dates et heures. Je ne sais pas encore s'il faut mettre des chamos date + des champs heures ou s'il faut seulement des champs timestamp (@camillemonchicourt ?). Cest vrai que pour les contraintes (min avant max) il serait plus simple d'avoir un seul champs...

JeromeMaruejouls commented 2 years ago

Seule remarque, si on active par configuration la saisie des horaires il serait bien que par défaut, heure min = heure max = par défaut l'heure de création du relevé, modifiable par l'utilisateur.

Entièrement d'accord avec la remarque de @DonovanMaillard . Occtax Mobile est fait pour saisir principalement des observations en direct et l'heure du début de saisie doit correspondre la plupart du temps à l'heure de l'observation.

sgrimault commented 2 years ago

C'est déjà le cas (mais je ne l'ai pas reprécisé), l'heure par défaut est bien celle au moment où l'utilisateur créé son relevé. Dernière petite question/remarque : actuellement on ne peut pas saisir une date de début du relevé dans le futur, je suppose que ce sera le cas aussi pour la date de fin de relevé ?

DonovanMaillard commented 2 years ago

Pour la date de fin, je pense qu'on peut ne pas mettre cette contrainte. Si un observateur prévoit de passer une nuit à un endroit, il est plus pertinent qu'il puisse saisir dès le début sa date de fin au lendemain matin par exemple s'il le souhaite. On risque en effet de commencer la saisie au début du relevé, et donc avant la date ou l'heure de fin.

L'autre option serait de définir la date et l'heure de fin de relevé à la fin de la saisie, mais je pense qu'on compliquerait les choses en revenant à l'étape du relevé à la fin, et que ca pénalisera les 95% de saisies où tout se passe sur une seule date.

C'est vrai qu'il y a un sujet sur l'ergonomie sur ce point... Coté web la date de fin ne peut pas etre future. Coté mobile, on doit définir une heure de fin lors du début du relevé, ce qui est discutable. mais revenir sur ces infos en fin de saisie est assez discutable aussi dans bien des cas. Actuellement il faudrait donc faire sa saisie, ne pas la terminer, aller modifier le relevé pour mettre à jour les dates et heures de fin, puis aller terminer sa saisie. Déjà quand on pourra modifier les relevés terminés jusqu'à ce qu'ils soient synchronisés, on y verra plus clair car tout relevé terminé pourra être modifié pour mettre à jour les dates et heures de fin de relevés...

DonovanMaillard commented 2 years ago

Fait dans la 2.2 à paraitre

camillemonchicourt commented 2 years ago

2 paramètres ont ainsi été rajoutés dans la 2.2.0 (à venir). Un pour activer la saisie de la date de fin, un pour activer la saisie des heures. Ces paramètres sont à False par défaut. Leur fonctionnement a été ajouté à la documentation : https://github.com/PnX-SI/gn_mobile_occtax/tree/develop#input-settings

En n'activant pas ces 2 paramètres, la date de fin poussée au niveau du relevé est égale à la date de fin. Et les heures de début et de fin sont laissées à null.

DonovanMaillard commented 2 years ago

2.2 publiée avec cette fonctionnalité :)