- Navigation par dossiers dans la section Infrastructure (créer, parcourir,
fil d'ariane), isolée du navigateur Documents comme les schémas eux-mêmes.
- Un schéma peut être associé à un site de l'organisation, avec filtre par
site dans la liste.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Les schémas créés depuis la section Infrastructure sont stockés comme des
Document (type=diagram) pour réutiliser le versioning existant, mais ne
doivent apparaître que dans leur propre section, pas mélangés aux fichiers
du module Documents.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Fiche d'identité par organisation (technicien référent, FAI, IP publiques,
prestataires liés) accessible depuis un nouveau menu.
- Nouveau module Prestataires dédié (catalogue léger réutilisable entre
communes, avec journal de suivi des échanges) plutôt que de détourner les
organisations de type "Fournisseur".
- Nouveau menu Infrastructure par organisation avec schémas réseau/fonctionnel
édités via draw.io embarqué (URL configurable, cf. réglages admin).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ajoute un formulaire rapide dans la carte "Tâches ouvertes" du dashboard, évitant de passer par la page ToDo dédiée pour les créations simples.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
L'édition de fichier nécessitait que le process web ait un accès en
écriture sur .env — problématique en prod (permissions, plusieurs
instances). À la place :
- Table `settings` (clé/valeur) + SettingsRegistry, une liste blanche
explicite des réglages modifiables (mail, OnlyOffice, GLPI, nom/URL de
l'app) mappés vers leur chemin de config Laravel.
- Volontairement exclu : tout ce qui touche à l'infrastructure (APP_KEY,
DB_*, SESSION_DRIVER, CACHE_STORE, QUEUE_CONNECTION...) — ces valeurs
sont nécessaires avant même qu'une connexion BDD existe, donc une
surcharge en base ne serait pas fiable et reste réservée au .env.
- AppServiceProvider applique les surcharges au boot (cache 5 min,
invalidé immédiatement à l'enregistrement) ; le reste du code continue
de lire config() normalement, sans changement ailleurs.
- Tant qu'aucun réglage n'est enregistré, le comportement reste identique
au .env actuel — transition sans rupture.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Nouvelle page "Configuration (.env)" réservée au rôle Administrateur :
- EnvFileManager lit/réécrit le .env ligne à ligne en préservant
commentaires et mise en forme, avec écriture atomique (fichier
temporaire + rename).
- Variables critiques (APP_KEY, DB_*, SESSION_DRIVER) en lecture seule
pour éviter de casser la connexion base de données ou de bloquer
l'accès admin — protection appliquée aussi côté serveur, pas
seulement dans l'affichage.
- Valeurs sensibles (mots de passe, jetons, clés) masquées par défaut
avec un bouton de révélation par champ.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Affiche le technicien responsable (avec repli sur le technicien assigné)
sur chaque ticket du tableau de bord.
- Compte les interactions technicien/demandeur en combinant suivis ET
tâches GLPI — les techniciens répondent parfois via une tâche plutôt
qu'un suivi, un premier passage qui ne comptait que les suivis sous-
estimait donc les échanges et déclenchait de fausses alertes.
- Signale visuellement (bordure + fond ambre, pictogramme ⚠️) les tickets
dont la dernière interaction vient du demandeur, en comparant la date du
dernier suivi et de la dernière tâche pour déterminer qui a parlé en
dernier.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sans TrustProxies, Laravel ignore X-Forwarded-Proto derrière un proxy qui
termine le TLS et génère les URLs d'assets en http://, provoquant des
erreurs de contenu mixte sur les pages servies en https://.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Coordonnées GPS sur les sites (formulaire + carte Leaflet en direct sur
la fiche et sur la liste des sites d'une organisation).
- Duplication d'un actif depuis la liste.
- Intégration GLPI en lecture seule : panneau "Tickets" sur le tableau de
bord de l'organisation (tickets non clos, priorité, catégorie, extrait),
organisations liées à leur entité GLPI via glpi_entity_id.
- Corrige la mise en cache des permissions Spatie lors du seed (silencée
par WithoutModelEvents) et rend le seeder admin idempotent.
- Ajoute busy_timeout/WAL à la config SQLite pour éviter les erreurs de
verrou sous écritures concurrentes.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Remplace le README générique Laravel par un résumé des fonctionnalités
réelles de l'app (organisations, documents, actifs, VM, todos, raccourcis,
utilisateurs) et des instructions d'installation.