Verrouillage formation par semestre #609

Closed
opened 2023-02-25 08:12:05 +01:00 by jmplace · 3 comments
Collaborator

Remontée d'un utilisateur:
pour une formation BUT, il existe des formsemestres verrouillés 1 et 3. et des formsemestres non verroullés 2 et 4.

L'utilisateur veut rectifier des coefficents pour le semestre 4.
Question préliminaire: est ce possible (j'avoue ne pas avoir suivi: est ce que l impoosibilité de modifier un programme se décide gloabalement sur l ensemble des semestres ou semestre par semestre)

En tout état de cause dans ce cas de figure, (pour le semestre 4):

  • La page des coefficient est visible
  • on peut tenter de modifier un coefficient
  • la modification n'est pas effective mais le retour utilisateur est très peu visible:
    • la requete ajax retourne une page html 'formation verrouillée'image
    • pas de message d'erreur explicite pour l'utilisateur qui peut juste constater que sa modif ne marche pas
    • Sébastien m'a bien indiqué que l'entourage de la case coeeficient changeait selon l'état:
      • requete en cours
      • requete en echec
      • requete reussie
        et m' a proposé des pistes d'amélioration (de préférence en modifiant la réponse avec un texte genre { "erreur": "formation verrouillée" }

Je peux regarder ce qu'on pourrait améliorer en connaissant la réponse préliminaire.

Remontée d'un utilisateur: pour une formation BUT, il existe des formsemestres verrouillés 1 et 3. et des formsemestres non verroullés 2 et 4. L'utilisateur veut rectifier des coefficents pour le semestre 4. Question préliminaire: est ce possible (j'avoue ne pas avoir suivi: est ce que l impoosibilité de modifier un programme se décide gloabalement sur l ensemble des semestres ou semestre par semestre) En tout état de cause dans ce cas de figure, (pour le semestre 4): * La page des coefficient est visible * on peut tenter de modifier un coefficient * la modification n'est pas effective mais le retour utilisateur est très peu visible: * la requete ajax retourne une page html 'formation verrouillée'![image](/attachments/08df6681-c047-4c74-93a2-e4ef1811e9e4) * pas de message d'erreur explicite pour l'utilisateur qui peut juste constater que sa modif ne marche pas * Sébastien m'a bien indiqué que l'entourage de la case coeeficient changeait selon l'état: * requete en cours * requete en echec * requete reussie et m' a proposé des pistes d'amélioration (de préférence en modifiant la réponse avec un texte genre { "erreur": "formation verrouillée" } Je peux regarder ce qu'on pourrait améliorer en connaissant la réponse préliminaire.
Owner

L'utilisateur veut rectifier des coefficents pour le semestre 4.
Question préliminaire: est ce possible (j'avoue ne pas avoir suivi: est ce que l impossibilité de modifier un programme se décide globalement sur l ensemble des semestres ou semestre par semestre)

Oui, c'est possible, en BUT le verrouillage se fait semestre par semestre dans le programme. On peut donc éditer S2 si S1 est verrouillé.

> L'utilisateur veut rectifier des coefficents pour le semestre 4. > Question préliminaire: est ce possible (j'avoue ne pas avoir suivi: est ce que l impossibilité de modifier un programme se décide globalement sur l ensemble des semestres ou semestre par semestre) Oui, c'est possible, en BUT le verrouillage se fait semestre par semestre dans le programme. On peut donc éditer S2 si S1 est verrouillé.
Author
Collaborator

Du coup j'ai tracé le programme.
La requete api: set_module_ue_coef abouti à set_ue_coef (ligne 174 de models/modules.py)
où l'on voit:

    if self.formation.has_locked_sems():
        raise ScoValueError("Formation verrouillée")

si les noms sont corrects, je pense que ce test est incorrect.
je suppose qu'en ajoutant le semestre concerné au test, celui ci sera plus tolérant (mais pas trop):

--- a/app/models/modules.py
+++ b/app/models/modules.py
@@ -176,7 +176,7 @@ class Module(db.Model):
         ue_coef_dict = { ue_id : coef }
         Les coefs nuls (zéro) ne sont pas stockés: la relation est supprimée.
         """
-        if self.formation.has_locked_sems():
+        if self.formation.has_locked_sems(self.semestre_id):
             raise ScoValueError("Formation verrouillée")
         changed = False
         for ue_id, coef in ue_coef_dict.items():

Du coup j'ai tracé le programme. La requete api: set_module_ue_coef abouti à set_ue_coef (ligne 174 de models/modules.py) où l'on voit: if self.formation.has_locked_sems(): raise ScoValueError("Formation verrouillée") si les noms sont corrects, je pense que ce test est incorrect. je suppose qu'en ajoutant le semestre concerné au test, celui ci sera plus tolérant (mais pas trop): ``` --- a/app/models/modules.py +++ b/app/models/modules.py @@ -176,7 +176,7 @@ class Module(db.Model): ue_coef_dict = { ue_id : coef } Les coefs nuls (zéro) ne sont pas stockés: la relation est supprimée. """ - if self.formation.has_locked_sems(): + if self.formation.has_locked_sems(self.semestre_id): raise ScoValueError("Formation verrouillée") changed = False for ue_id, coef in ue_coef_dict.items(): ```
Owner

Done.

Done.
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 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#609
No description provided.