Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • LabNbook-code LabNbook-code
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 113
    • Issues 113
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 3
    • Merge requests 3
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • LabNbookLabNbook
  • LabNbook-codeLabNbook-code
  • Issues
  • #646
Closed
Open
Incident created Sep 29, 2021 by David Beniamine@beniamidOwner7 of 7 checklist items completed7/7 checklist items

Groupeid Moodle non transmit à LabNbook

  • Role : enseignant / étudiant
  • Page(s) / Url(s) : /api/v1/mission/<id_mission>/use, /api/v1/mission/<id_mission>/update, /report/enter/<id_team_config>
  • Comportement actuel (si besoin) : Les groupes de Moodle ne sont pas transmit par le plugin à LabNbook
  • Comportement attendu :
    • Spécification V3 : les groupes devaient être gérés de deux façon
      1. À la création / modification d'activité, le couple courseid et groupid et envoyé à LNB qui crée une classe pour le coupe correspondant
      2. À l'arrivée d'un étudiant sur /report/enter/<id_team_config> Moodle transmet le couple courseid / groupid de l'étudiant, au besoin, LabNbook crée une classe pour son groupe et duplique le team_config d'origine
    • Implémentation réelle l'étape 1. ne transmet jamais de groupid, l'étape 2 n'est pas implémentée
  • Proposition technique :
  1. Transmettre un groupeid directement depuis l'activité est extrêmement compliquée : une activité n'a pas de groupe de manière intrinsèque: elle peut être restreinte à un groupe mais il s'agit d'une restriction (parmi d'autre) appliquée par Moodle. Il n'existe à priori pas d'API propre et claire pour récupèrer le groupeid auquel serait restreint une activité par Moodle.
    Je propose donc de ne pas traiter ce cas directement.
    Concrètement, côté utilisateur cela voudrait dire assigner autant de fois la mission qu'il y a de groupe sur le même cours en restreignant à chaque fois à un groupe. Si un utilisateur tente ça il aura un message disant Cette mission est déjà attribué à cette classe
    Je propose donc de modifier ce message pour indiquer : Cette mission est déjà attribué dans ce cours, il n'est pas possible d'affecter plusieurs fois une mission à un cours même en activant des restrictions de groupe
  2. Ici c'est relativement simple, on peut passer le couple courseid et groupid a /report/enter/<id_team_config>, il y a alors 3 cas :
    1. Le couple n'est pas passé, on entre "normalement" dans le teamconfig
    2. Le couple et passé et correspond au ext_code de la classe du teamconfig, on entre dans le teamconfig
    3. Le couple et passé et ne correspond pas au ext_code de la classe du teamconfig :
      1. Il existe une classe avec l'ext_code cible et un teamconfig avec la même mission dans cette classe, on entre sur ce teamconfig
      2. Il n'existe pas une telle classe, on la crée en dupliquant la classe d'origine, duplique le teamconfig dans cette classe puis entre sur le teamconfig nouvellement crée

Cette solution implique donc des modifications minimes :

TODO

  • Coté Moodle
    • Changer le message d'erreur de 1.
    • Envoyer groupeid et courseid au /report/enter/<id_team_config>
  • Côté Labnbook
    • Gérer les cas du 2.
    • Répercuter les changements de team_config via l'API sur tous les teamconfig enfants
    • Mettre à jour tests auto
      • Corriger test mission
      • Ajouter test avec multiples groupes
    • Mettre à jour documentation
Edited Dec 09, 2021 by David Beniamine
Assignee
Assign to
Time tracking