classe->devoirs() ->where('echeance', '>=', now()) ->whereDoesntHave('rendus', fn ($q) => $q->where('eleve_id', $eleve->id)) ->count(); $seancesOuvertes = $eleve->classe->seances() ->whereIn('statut', [Seance::SALLE_ATTENTE, Seance::EN_COURS]) ->count(); $quizEnCours = SessionQuiz::whereHas('quiz', fn ($q) => $q->where('classe_id', $eleve->classe_id)) ->whereIn('statut', [SessionQuiz::EN_ATTENTE, SessionQuiz::EN_COURS]) ->exists(); return $devoirsEnAttente + $seancesOuvertes + ($quizEnCours ? 1 : 0); } }