41 lines
1.1 KiB
PHP
41 lines
1.1 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Http\Controllers;
|
||
|
|
|
||
|
|
use App\Models\Cours;
|
||
|
|
use App\Models\Lab;
|
||
|
|
use App\Models\Seance;
|
||
|
|
use Illuminate\Support\Facades\Auth;
|
||
|
|
use Illuminate\Support\Str;
|
||
|
|
use Illuminate\View\View;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* « Mes cours » (séparation vitrine/application, 2026-10-13) : seulement
|
||
|
|
* les cours des labs déjà pratiqués par la classe, et seulement ceux qui
|
||
|
|
* ont un vrai cours.md (un seul aujourd'hui). Pas de fiche de démonstration
|
||
|
|
* (CLAUDE.md : pas de donnée inventée).
|
||
|
|
*/
|
||
|
|
class MesCoursController extends Controller
|
||
|
|
{
|
||
|
|
public function show(): View
|
||
|
|
{
|
||
|
|
$eleve = Auth::guard('eleve')->user();
|
||
|
|
|
||
|
|
$labIds = Seance::where('classe_id', $eleve->classe_id)->distinct()->pluck('lab_id');
|
||
|
|
|
||
|
|
$identifiants = Lab::whereIn('id', $labIds)->pluck('identifiant');
|
||
|
|
|
||
|
|
$cours = Cours::whereIn('identifiant', $identifiants)->orderBy('titre')->get();
|
||
|
|
|
||
|
|
return view('mes-cours', ['cours' => $cours]);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function montrer(Cours $cours): View
|
||
|
|
{
|
||
|
|
return view('cours-detail', [
|
||
|
|
'cours' => $cours,
|
||
|
|
'html' => Str::markdown($cours->contenu_markdown),
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
}
|