Édition éditable (dates) + robustesse de l'écran Postes & créneaux
Back-end :
- GET /editions/{id} (tout compte de l'édition) et PATCH /editions/{id}
(COORDINATION) : name, year, start_date, end_date, retention_days.
Refus si end_date < start_date (edition.dates_inconsistent). Tests.
Front-end :
- api : EditionRead/Update, editions.get/update (http + mock), hooks
useEdition / useUpdateEdition.
- ConfigGrid : le bouton « ajouter un poste » sélectionne le poste créé et
affiche l'état (pending) + les erreurs (ErrorNote) — avant, un échec ou
même un succès passaient inaperçus. Renommage du poste + choix de la
catégorie + suppression dans l'en-tête. Une colonne par jour de l'édition
(même vide) → on peut ajouter un créneau n'importe quel jour.
- ConfigRules : formulaire d'édition (nom + dates) → c'est là qu'on ajoute
ou retire des jours ; compteur de jours ; retour d'enregistrement.
- i18n mis à jour.
144 tests back OK ; typecheck + lint + build + smoke front OK.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017uUsRg7XzopkCPWimwg9ZM
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
9521034207
commit
e0a0c56307
@@ -164,7 +164,10 @@
|
||||
"config.grid.min": "MIN",
|
||||
"config.grid.ideal": "IDÉAL",
|
||||
"config.grid.noShifts": "Aucun créneau sur ce poste. Ajoutez-en un pour qu'il apparaisse dans la grille.",
|
||||
"config.grid.note": "Les modifications d'effectif (min / idéal) et les créneaux sont enregistrés immédiatement via l'API et se répercutent sur la grille des besoins (onglet 01).",
|
||||
"config.grid.emptyDay": "Aucun créneau ce jour.",
|
||||
"config.grid.deletePosition": "SUPPRIMER LE POSTE",
|
||||
"config.grid.deletePositionConfirm": "Supprimer ce poste et tous ses créneaux ?",
|
||||
"config.grid.note": "Effectifs, créneaux, nom et catégorie du poste sont enregistrés immédiatement via l'API. Pour ajouter ou retirer des jours, modifiez les dates de l'édition dans l'onglet « Règles & édition ».",
|
||||
|
||||
"config.vol.importTitle": "IMPORTER DES INSCRIPTIONS",
|
||||
"config.vol.importHint": "L'import de fichier CSV / Excel se fait via l'endpoint dédié. Ce bouton crée 4 bénévoles d'exemple via l'API.",
|
||||
@@ -202,13 +205,18 @@
|
||||
"config.mail.previewTitle": "APERÇU",
|
||||
"config.mail.previewSender": "DE : expéditeur configuré côté serveur",
|
||||
|
||||
"config.rules.editionTitle": "ÉDITION & CONNEXION",
|
||||
"config.rules.editionId": "Identifiant d'édition",
|
||||
"config.rules.editionTitle": "ÉDITION",
|
||||
"config.rules.editionName": "Nom",
|
||||
"config.rules.editionStart": "Premier jour",
|
||||
"config.rules.editionEnd": "Dernier jour",
|
||||
"config.rules.editionDays": "{count} jour(s)",
|
||||
"config.rules.editionSave": "ENREGISTRER L'ÉDITION",
|
||||
"config.rules.editionSaved": "Édition enregistrée.",
|
||||
"config.rules.apiMode": "Mode API",
|
||||
"config.rules.volunteersCount": "Bénévoles",
|
||||
"config.rules.positionsCount": "Postes",
|
||||
"config.rules.shiftsCount": "Créneaux",
|
||||
"config.rules.editionNote": "Il n'y a pas encore d'endpoint de configuration d'édition : nom, dates et rétention se règlent en base. En mode HTTP, VITE_EDITION_ID désigne l'édition.",
|
||||
"edition.dates_inconsistent": "La date de fin doit être postérieure ou égale à la date de début.",
|
||||
"config.rules.thresholdsTitle": "MOTEUR DE VALIDATION",
|
||||
"config.rules.maxDaily": "Maximum d'heures par journée",
|
||||
"config.rules.minRest": "Repos minimum entre deux créneaux",
|
||||
|
||||
Reference in New Issue
Block a user