---
suivi: 1447
date: 2026-09-04
sujet: Parcelle — ajustements visuels fiche (mention, lieu-dit, valo/historique modales, masquage charges)
chantier: foncier / parcelles
type: feature
statut: poussé
hash: 8df835c6
fichiers:
  - resources/js/Pages/Foncier/Parcelles/Show.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1447_parcelle_ajustements_visuels.md
---

# SUIVI #1447 — Ajustements visuels fiche parcelle

## PROMPT ENVOYÉ

Ajustements visuels `/foncier/parcelles/{id}` : mention d’aide à l’édition,
lieu-dit dans Identification, valorisation en modale, masquage temporaire
Charges de portage (écran seulement), historique en icône + modale (réutiliser
#1439). Ne pas défaire #1446. Aucun changement de données. Ne pas traiter la
fuite `searchDepotFactures` (#1428).

## FICHES LUES

- `#1446` — fusion état/type, bornage, feu, bâti, échéance. Conservé tel quel
  (champs, whitelist, alerte, tâche). Ce lot ne touche que le rendu Show.vue.
- `#1439` LEÇON — historique avis : icône `pi-history`, Dialog PrimeVue,
  `max-h-[60vh] overflow-y-auto`, jamais `overflow-x-hidden` (#1271 / #1444).
  Avant → après, libellés français. Pas de composant Vue partagé (extraire
  toucherait l’écran avis). Réutilisation du *mécanisme* (icône + Dialog +
  cartes avant/après), pas d’extraction.
- `#1442` / `#1434` — liste dossiers et droits GS_GEMME_PDG : non touchés.
- `#1428` — `ChargePortageController::searchDepotFactures` L71-122 expose
  fournisseur et montants sans contrôle de visibilité (CRITIQUE). Le masquage
  du bloc ne ferme pas la route. Dette ouverte, non traitée ici.

## PRÉREQUIS

`origin/main` contient #1446 (`ad743a5c` / fiche `e58062a7`) avant rebase /
commit. Confirmé ancêtre.

## SYNTHÈSE

Lot visuel. Aucun contrôleur, modèle, route, migration. Journal PHP uniquement
(entrée utilisateur).

### Volet 1 — mention

Une seule phrase `Pour modifier, cliquez sur une valeur` (`text-xs text-[#9CA3AF]`),
juste au-dessus de la grille Identification / Surfaces, `v-if="peut_gestion"`
pour ne pas induire en erreur un lecteur sans droit d’édition.

### Volet 2 — lieu-dit

Déplacé du bloc Urbanisme vers Identification (après Société détentrice).
Même `InlineEditableField` / `champ="lieu_dit"`. Pas de changement de payload.

### Volet 3 — valorisation

Bouton **Ajouter une valorisation** ouvre un `Dialog`. Le bouton de validation
reste **Enregistrer la valorisation**. `onSuccess` ferme la modale
(`showValoCreate = false`) ; Inertia rafraîchit la liste.

### Volet 4 — charges de portage (masquage réversible)

Une seule constante, commentée `#1447` :

```
const AFFICHER_CHARGES_PORTAGE = false;
```

**Réactiver :** passer à `true` dans `Show.vue`, rebuild Vite, committer
`public/build/`. Routes `charges-portage.*`, colonnes, `ChargePortageController`
et données inchangées.

**Dette ouverte #1428 :** `GET /foncier/charges-portage/depot-factures/search`
reste accessible (`foncier.lecture` seulement) et renvoie `fournisseur_nom`,
`montant_ht`, `montant_ttc`. Le masquage UI ne ferme pas cette fuite.

### Volet 5 — historique

Bloc bas retiré. Icône `pi-history` en haut à droite (hors `peut_gestion`,
visible dès que la fiche l’est). Dialog lecture seule, même chrome que #1439
(`class="w-full max-w-2xl"`, `max-h-[60vh] overflow-y-auto`, cartes
`bg-[#FAFAF8]`, `ancienne_valeur → nouvelle_valeur`, `champ_libelle` français
déjà fourni par `FieldAuditService::presentHistoriqueFiche`). Données déjà
dans le payload Inertia — pas de nouvelle route.

### Contrôle de droit sur l’historique (constaté, non modifié)

Aucun contrôle dédié. `ParcelleController::show` appelle `$this->authorize('view', $parcelle)`
puis envoie `historique` à tout lecteur de la fiche. Les montants sensibles
sont masqués sans `foncier.prix` (`valeurs_masquees`). Pas d’équivalent
`GROUPES_SUPPRESSION` / `peut_historique` du #1439. **Aucun droit ajouté**
dans ce lot.

## DÉPLOIEMENT-TEST

```
git pull origin main
php artisan optimize:clear
php artisan view:clear
php artisan journal:sync
```

Pas de migration.

## LEÇON

Masquage UI ≠ fermeture de route : cacher un bloc ne colmate pas une fuite
JSON (#1428). Réutiliser un Dialog PrimeVue déjà importé dans un autre écran
(#1439) sans extraire un composant partagé évite de toucher une page disputée.
Ne jamais `overflow-x-hidden` (#1271, récidive #1444).
