feat(frontend): add restitution result screen (completes student flow)

This commit is contained in:
SaidSoighiri94
2026-07-07 10:08:33 +02:00
parent e9d67e78f5
commit 90d5a65f29
4 changed files with 292 additions and 3 deletions
@@ -2,9 +2,11 @@ import "package:flutter/material.dart";
import "package:google_fonts/google_fonts.dart";
import "../theme/ensup_colors.dart";
import "../models/emprunt_item.dart";
import "../models/anomalie_retour.dart";
import "../widgets/ensup_top_bar.dart";
import "../widgets/brand_corners.dart";
import "../widgets/etat_checklist.dart";
import "resultat_retour_screen.dart";
/// Checklist de retour (RG16) : l'étudiant indique l'état de chaque accessoire
/// au retour, en vue de la comparaison avec la checklist de départ.
@@ -24,8 +26,20 @@ class _ChecklistRetourScreenState extends State<ChecklistRetourScreen> {
);
void _valider() {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text("Résultat de la restitution — écran à venir")),
final accessoires = widget.emprunt.materiel.accessoires;
final anomalies = <AnomalieRetour>[];
for (var i = 0; i < _etats.length; i++) {
if (_etats[i] == EtatChecklist.absent) {
anomalies.add(AnomalieRetour(element: accessoires[i], etatRetour: "Absent au retour"));
} else if (_etats[i] == EtatChecklist.deteriore) {
anomalies.add(AnomalieRetour(element: accessoires[i], etatRetour: "Détérioré au retour"));
}
}
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => ResultatRetourScreen(emprunt: widget.emprunt, anomalies: anomalies),
),
);
}