---
suivi: 1463
date: 2026-09-07
sujet: Fiche parcelle — société détentrice à l’acte + Urbanisme empilé
chantier: foncier / parcelles / Show
type: fix
statut: poussé
hash: 4e36cfed
fichiers:
  - resources/js/Pages/Foncier/Parcelles/Show.vue
  - public/build/
  - tests/Unit/Parcelle1463SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - docs/suivi/SUIVI_1463_fiche_parcelle_detentrice_urbanisme.md
  - docs/suivi/SUIVI_1462_diag_fiche_parcelle_detentrice_urbanisme.md
---

# SUIVI #1463 — fiche parcelle détentrice + Urbanisme (PHASE 2)

## PROMPT ENVOYÉ

Suite du diagnostic #1462. Option A Robin : (1) afficher « Société détentrice »
uniquement si `source === 'acte'` (édition manuelle retirée de la fiche) ;
(2) empiler libellé/valeur dans Urbanisme, retirer `sm:grid-cols-2` et
`min-w-[10rem]` localement. Pas de migration, pas de touche back / Patrimoine /
ActeAcquisitionService. Rebuild + tests source.

## FICHES LUES

- **#1462** — causes sourcées ; requêtes ; clause d’arrêt (édition manuelle
  arbitrée : Robin accepte la disparition sur la fiche).
- **#1246** — colonne conservée ; badge Sans acte reste sur Patrimoine.
- **#1449 / #1452** — `grid-template-areas` inchangées ; pas d’`overflow-x-hidden`.

## SYNTHÈSE

### Mapping affichage société détentrice (#1463)

| source (back) | acte présent | ligne affichée | badge Sans acte | édition inline |
|---------------|--------------|----------------|-----------------|----------------|
| `acte` | oui (sinon source ≠ acte) | **oui** | non | non (`:editable="false"`) |
| `manuel` + acte | oui → source recalculée `acte` | **oui** | non | non |
| `manuel` sans acte | non | **non** | non (retiré de Show) | n/a |
| `null` | — | **non** | non | n/a |

Note : `serializeSocieteDetentrice` pose `source = 'acte'` dès qu’un
`actesFonciers` existe ; le cas « manuel avec acte » n’apparaît pas côté méta
exposée (l’acte prime L1147–1152).

### Urbanisme — AVANT / APRÈS classes

| | AVANT | APRÈS |
|---|--------|--------|
| `<dl>` | `mt-3 grid gap-2 text-sm sm:grid-cols-2` | `mt-3 space-y-2 text-sm` |
| paire | `flex items-center justify-between gap-2` | `flex flex-col gap-0.5` |
| `<dd>` | `min-w-[10rem] text-right` | (aucune classe force-width) |

Quatre paires traitées : Zonage PLU, Constructible, Risque inondable, Risque feu
de forêt. `grid-template-areas` page inchangées. Badge « Sans acte » retiré de
Show.vue ; conservé sur `Patrimoine/Index.vue`.

Bundle fiche : `public/build/assets/Show-BjRgMVvL.js` (+ CSS
`Show-BM-qD3qU.css`) ; `manifest.json` cohérent.

Micro-fix #1462 : suppression d’une classe Tailwind invalide
classe responsive inventée type « min-Npx flex-row » dans la prose du diagnostic (cassait `npm run build`
via scan Tailwind v4) — remplacée par une formulation sans classe inventée.

### Mesure prod Robin (reprise #1462)

`active` = 6 parcelles ; 1 avec société ; 1 sans acte dont 1 non acquise.
Aucun autre chiffre produit par l’agent.

## DÉPLOIEMENT-TEST

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

Pas de migration. Pas de PHP applicatif → pas de touch OPcache obligatoire.
JAMAIS npm/composer/optimize/config:cache sur OVH.

Contrôle visuel Robin (agent sans navigateur) : fiche 2104 sans ligne détentrice ;
parcelle avec acte : ligne visible verrouillée ; Urbanisme lisible à 1440 / 1100 / 800.

## LEÇON

Conditionner l’UI à `source === 'acte'` suffit quand le métier refuse la saisie
manuelle sur la fiche : ne pas toucher la colonne ni Patrimoine. Urbanisme :
deux grilles empilées (page × dl) + `min-w` = chevauchement ; aligner sur
`space-y-2` + `flex-col` localement sans toucher les areas. Ne pas laisser de
classes Tailwind inventées (variant min-largeur arbitraire) dans `docs/suivi/` — Tailwind v4
les scanne et fait échouer le build.
