feat(#156): wizard admin création dossier AM (create/review).

Généralise ValidationAmWizard en AmDossierWizard ; le + Asmat ouvre
le mode création vers POST /assistantes-maternelles/dossier.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-22 19:07:14 +02:00
co-authored by Cursor
parent 59afeb0a8d
commit 471a62ddb7
6 changed files with 1155 additions and 487 deletions
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:p_tits_pas/screens/administrateurs/creation/gestionnaires_create.dart';
import 'package:p_tits_pas/services/user_service.dart';
import 'package:p_tits_pas/widgets/admin/admin_management_widget.dart';
import 'package:p_tits_pas/widgets/admin/am_dossier_create_modal.dart';
import 'package:p_tits_pas/widgets/admin/assistante_maternelle_management_widget.dart';
import 'package:p_tits_pas/widgets/admin/common/admin_child_detail_modal.dart';
import 'package:p_tits_pas/widgets/admin/dashboard_admin.dart';
@@ -28,6 +29,7 @@ class _UserManagementPanelState extends State<UserManagementPanel> {
int _gestionnaireRefreshTick = 0;
int _adminRefreshTick = 0;
int _enfantRefreshTick = 0;
int _amRefreshTick = 0;
final TextEditingController _searchController = TextEditingController();
final TextEditingController _amCapacityController = TextEditingController();
String? _parentStatus;
@@ -272,6 +274,7 @@ class _UserManagementPanelState extends State<UserManagementPanel> {
);
case 2:
return AssistanteMaternelleManagementWidget(
key: ValueKey('ams-$_amRefreshTick'),
searchQuery: _searchController.text,
capacityMin: int.tryParse(_amCapacityController.text),
);
@@ -331,6 +334,24 @@ class _UserManagementPanelState extends State<UserManagementPanel> {
return;
}
if (contentIndex == 2) {
await showDialog<void>(
context: context,
barrierDismissible: false,
builder: (dialogContext) {
return AmDossierCreateModal(
onClose: () => Navigator.of(dialogContext).pop(),
onSuccess: () {
Navigator.of(dialogContext).pop();
if (!mounted) return;
setState(() => _amRefreshTick++);
},
);
},
);
return;
}
if (contentIndex == 3) {
final created = await showDialog<bool>(
context: context,
@@ -374,7 +395,7 @@ class _UserManagementPanelState extends State<UserManagementPanel> {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text(
'La création parent / enfant / AM sera disponible avec le ticket #129.',
'La création parent sera disponible avec le ticket #129.',
),
),
);