rapproche encore le tableau de bord de la démo /cockpit : avancement par vérification, mains levées avec action réelle, progression de la séance

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Adam Belkacemi 2026-10-12 23:20:28 +02:00
parent 0573894721
commit ee079ddffb
6 changed files with 178 additions and 6 deletions

View file

@ -214,7 +214,26 @@ class VisioController extends Controller
public static function nombreMainsLevees(Seance $seance): int
{
return count((Cache::get(self::cleEtat($seance)) ?? [])['mains'] ?? []);
return count(self::mainsLevees($seance));
}
/**
* Mains levées, premier arrivé en premier (même tri que etatProf) : nom
* déjà minimisé (prénom + initiale), rien de plus que ce qu'affiche
* déjà la page de visio.
*
* @return list<array{eleve_id: int, nom: string, depuis: int}>
*/
public static function mainsLevees(Seance $seance): array
{
/** @var array<int, array{nom: string, depuis: int}> $mains */
$mains = (Cache::get(self::cleEtat($seance)) ?? [])['mains'] ?? [];
return collect($mains)
->sortBy('depuis')
->map(fn ($m, $id) => ['eleve_id' => (int) $id, 'nom' => $m['nom'], 'depuis' => $m['depuis']])
->values()
->all();
}
private function cle(Seance $seance): string