Saisie différée: non enregistrement ? #740

Closed
opened 2023-09-19 22:32:25 +02:00 by viennet · 5 comments
Owner

image

En saisie différée, si on saisi des présences puis efface (en recliquant au même endroit), des choses se perdent. Pas d'enregistrement, affichages incohérent. On n'observe rien dans la console JS ni rien dans le log serveur.

Le bug peut être reproduit en cliquant un grand nombre (5 à 10) fois sur la case "présence" d'un étudiant.

De même, si on clique sur "absent" (croix rouge), l'absence ne s'efface pas.

Client: FF sous Mac.

![image](/attachments/7fa5556c-44b4-4df7-9cfe-4ac0c0000aa1) En saisie différée, si on saisi des présences puis efface (en recliquant au même endroit), des choses se perdent. Pas d'enregistrement, affichages incohérent. On n'observe rien dans la console JS ni rien dans le log serveur. Le bug peut être reproduit en cliquant un grand nombre (5 à 10) fois sur la case "présence" d'un étudiant. De même, si on clique sur "absent" (croix rouge), l'absence ne s'efface pas. Client: FF sous Mac.
133 KiB
viennet added this to the ScoDoc 9.6 milestone 2023-09-19 22:32:25 +02:00
viennet added the
ABS
bug
labels 2023-09-19 22:32:25 +02:00
Author
Owner

On a bien un appel à chaque click à

avec un contenu

{
	"[{\"date_debut\":\"2023-09-18T10:00:00+02:00\",\"date_fin\":\"2023-09-18T12:00:00+02:00\",\"etudid\":\"468\",\"moduleimpl_id\":\"936\",\"etat\":\"present\",\"colid\":\"1\"}]": ""
}
{
	"[{\"date_debut\":\"2023-09-18T10:00:00+02:00\",\"date_fin\":\"2023-09-18T12:00:00+02:00\",\"etudid\":\"468\",\"moduleimpl_id\":\"936\",\"etat\":\"present\",\"colid\":\"1\"}]": ""
}

donc "present" sur deux clics consécutifs.

On a bien un appel à chaque click à ```sync_post /ScoDoc/IS-TC/api/assiduite/468/create ``` avec un contenu ```json { "[{\"date_debut\":\"2023-09-18T10:00:00+02:00\",\"date_fin\":\"2023-09-18T12:00:00+02:00\",\"etudid\":\"468\",\"moduleimpl_id\":\"936\",\"etat\":\"present\",\"colid\":\"1\"}]": "" } ``` ```json { "[{\"date_debut\":\"2023-09-18T10:00:00+02:00\",\"date_fin\":\"2023-09-18T12:00:00+02:00\",\"etudid\":\"468\",\"moduleimpl_id\":\"936\",\"etat\":\"present\",\"colid\":\"1\"}]": "" } ``` donc "present" sur deux clics consécutifs.
Author
Owner

Suite de l'enquête

Un étudiant n'est pas inscrit au module sélectionné

  • la liste présentée devrait refléter les inscrits
  • l'erreur n'est pas affichée à l'utilisateur

image

En effet, _create_singularcapte l'exception ScoValueError et renvoie toujours un status HTTP 200, avec en payload la liste des erreurs.

or assiduite.jsfait un sync_post qui ne traite pas l'erreur (puisque réponse 200).

En effet le code client ne fait RIEN quand il a une réponse 200.

image

Suite de l'enquête Un étudiant n'est pas inscrit au module sélectionné - la liste présentée devrait refléter les inscrits - l'erreur n'est pas affichée à l'utilisateur ![image](/attachments/189160fd-5c5f-4a2e-a024-7c1bfc2f7989) En effet, `_create_singular`capte l'exception `ScoValueError` et renvoie toujours un status HTTP 200, avec en payload la liste des erreurs. or `assiduite.js`fait un `sync_post` qui ne traite pas l'erreur (puisque réponse 200). En effet le code client ne fait RIEN quand il a une réponse 200. ![image](/attachments/ab731493-9f06-4665-b911-609650131780)
Author
Owner

Donc:

  • lorsque l'utilisateur change le module, il faut rafraichir la liste des étudiants
    actuellement on a un sync_getde assiduites/group/query qui envoie la liste de tous les étudiants inscrits au semestre (et non au module).

  • traiter les erreurs: afficher une alerte.

Donc: - lorsque l'utilisateur change le module, il faut rafraichir la liste des étudiants actuellement on a un `sync_get`de `assiduites/group/query` qui envoie la liste de tous les étudiants inscrits au semestre (et non au module). - traiter les erreurs: afficher une alerte.
Author
Owner

partiellement corrigé par b8f7037804
Compléter/vérifier le traitement des erreurs en JS

partiellement corrigé par b8f7037804a0ce55a432f10dc7c3e9cf87912f96 Compléter/vérifier le traitement des erreurs en JS
Author
Owner

La nouvelle page règle ce problème.

La nouvelle page règle ce problème.
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: ScoDoc/ScoDoc#740
No description provided.