- Hiérarchie Symfony : ROLE_ADMIN -> ROLE_BUREAU -> ROLE_USER
- ROLE_BUREAU autorise : export inventaire bovin, sync EDNOTIF, visibilité des colonnes Prix/kg et Prix total
- Front : utility roles.ts qui réplique la hiérarchie + auth store étendu (hasRole, isBureau)
- Refactor useBovineColumns : variants withPrices/withoutPrices × inventory/case, gate par isBureau
- Inventory page : Export/Rafraîchir conditionnés par isBureau
- Ajout du rôle dans la const ROLE pour le form admin user
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- DELETE Reception et Shipment passent de ROLE_USER à ROLE_ADMIN (alignement avec l'UI qui cachait déjà les boutons aux non-admin)
- Middleware Nuxt global qui redirige les non-admin de /admin/* vers / (et vers /login si pas authentifié)
- Aucun impact sur l'API /api/carriers qui reste lisible par tous (utilisée dans les formulaires de réception/expédition)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Passe par /tmp (le user SSH n'a pas les droits sur /var/www/ferme)
- 6 étapes numérotées (scp, ssh, cd, dry-run, run, rm)
- Note sur chmod 644 si www-data ne peut pas lire
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Dépendance phpoffice/phpspreadsheet
- Endpoint GET /bovines/inventory-export : XLSX coloré, header figé, auto-filter, tri birthDate ASC
- Endpoint GET /bovines/inventory-stats : comptes par tranche d'âge (>=24, 22-24, 20-22)
- Bouton Excel à gauche du titre (style icône-only, même design que le bouton impression)
- Légende visuelle avec cartes bordées coloriées
- Ajustement seuils couleurs des lignes en -300 (base) / -400 (hover)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
birthDate ASC sur l'ApiResource Bovine, impacte automatiquement les pages
inventaire et case. Choix ASC plutôt que ageMonths DESC pour bénéficier du
NULLS LAST natif de Postgres.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Ajout (X bovins) à côté du titre sur les pages inventaire et case
- Seuils par âge : 20-22 mois orange, 22-24 mois rouge, 24+ violet
- Couleurs renforcées en -200 / hover -300
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Alignement sur le pattern case.vue : titre et bouton Ajouter sur la même ligne,
wrapper px-[86px] commun, suppression du bouton bottom-centered
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Page case : mêmes colonnes, filtres et alertes âge que la page inventaire
- Page building : header aligné sur le pattern case.vue (wrapper px-86, arrow en absolute)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 3 nouveaux endpoints API Platform pass-through sur /api/bovins/{inventory|returned-dossiers|presumed-exits} consommant BovinApiInterface v0.0.6
- AnimalSummaryMapper (src/Service/) factorisant le mapping DTO EDNOTIF -> ressource
- src/State/ réorganisé par domaine (Bovin/, Reception/, Shipment/, Building/, User/, System/)
- tag OpenAPI "Bovins" pour regrouper les endpoints ednotif dans Swagger
- malio/ednotif-bundle passé à v0.0.6
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
| | |
## Description de la PR
## Modification du .env
## Check list
- [ ] Pas de régression
- [ ] TU/TI/TF rédigée
- [ ] TU/TI/TF OK
- [ ] CHANGELOG modifié
Reviewed-on: #47
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
- Ajout page infrastructure/bovine avec CRUD
- Refacto BuildingCase (suppression Statut, simplification)
- Commande EnrichBovinesCommand pour enrichir les données bovins
- 4 migrations Doctrine
- Mise à jour composables shipment/weighing
- Mise à jour README et CHANGELOG
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
| | |
## Description de la PR
## Modification du .env
## Check list
- [x] Pas de régression
- [x] TU/TI/TF rédigée
- [x] TU/TI/TF OK
- [x] CHANGELOG modifié
Reviewed-on: #42
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>