Équipes construites par les étudiants
Quand on affecte une mission à des étudiants, ajouter une option pour que les étudiants construisent eux-mêmes des équipes de X membres. Prévoir une tolérance sur ce X qui ne sera pas toujours un diviseur du nombre d'inscrits (ni de présents).
En théorie, on a #Inscrits = NbEq * X + R
où le reste peut être soit réparti dans les autres équipes, soit affectée à une plus petite équipe. En pratique, les absents rendent impossible la connaissance à priori de NbEq et R. Ci-dessous, on suppose que NbEq est le nombre d'équipes, indépendamment du reste de la division.
Quand un étudiant veut se connecter à sa mission, il passe d'abord par une page de choix d'équipe :
- [Jeanne] [Hitomi] [Hocine]
- [Hégésippe] [m'inscrire dans cette équipe]
- [nouvelle équipe]
En détails, sur cette page :
- On affiche les équipes complètes.
- On affiche un bouton pour s'ajouter à chaque équipe incomplète (premier servi, message d'erreur si la place est prise).
- On affiche un bouton pour créer une nouvelle équipe, si on n'a pas encore atteint le nombre maximum d'équipes (NbEq dans la division euclidienne du §1). Prévoir là aussi que la "place" puisse être prise (NbEq atteint par une autre requête).
- Prévoir un mécanisme en cas de déséquilibres persistants (p.ex. individus isolés alors que la plupart des étudiants sont inscrits, etc) pour le signaler à l'enseignant, afin qu'il fusionne des équipes. C'est le point le plus délicat.
Le stockage dans la base SQL passerait sans doute par une nouvelle table report_template
avec sa table de liaison avec les étudiants. Modifier la tables des rapports risquerait d'introduire des effets de bord complexes.