É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.
issue