---
suivi: 1834
date: 2026-10-09
sujet: Liste Parcelles, regroupement propriétaire et lisibilité
chantier: foncier
type: evolution
statut: poussé
hash: 8394dc025
fichiers:
  - resources/js/Pages/Foncier/Prospection/Index.vue
  - resources/js/Pages/Foncier/Proprietaires/Show.vue
  - app/Http/Controllers/Foncier/ProspectionController.php
  - app/Services/Foncier/ParcelleProspectionQuery.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - tests/Unit/FoncierProspectionListe1834SourceTest.php
  - tests/Feature/Foncier/FoncierProspectionSourceTest.php
  - tests/Feature/Foncier/FoncierAccesGsHectareTest.php
  - tests/Feature/Foncier/FoncierProprietaireDernierContactTest.php
  - public/build/manifest.json
  - docs/suivi/SUIVI_1834_parcelles_regrouper_proprietaire.md
---

# SUIVI #1834 — regroupement propriétaire et lisibilité

## PROMPT ENVOYÉ

Retouches de Foncier > Parcelles après #1829. Bandeau lisible, fond rouge pâle sur la cellule à compléter, pagination blanche, un seul sélecteur Regrouper (Commune, Propriétaire, Aucun).

## Fiches lues

- #1829 : la carte lit `nb_statut_*`, pas `nb_detenues`. `montant` d'achat et de cible d'un groupe excluent le hors groupe. L'export force `regrouper=aucun`. Une préférence de colonnes absente n'est pas une liste vide. `valo` se lit `estime`. Le point orange et les six conditions « à compléter » restent. Le fond rouge pâle s'ajoute sur la cellule, il ne remplace pas le point.

## SYNTHÈSE

Le bandeau n'est plus comprimé : il ne rétrécit plus dans la colonne de la page (`flex-shrink: 0`). Les chiffres 26 px et la légende de la barre restent entiers, en vue complète comme en vue restreinte.

Une cellule des six conditions « à compléter » a le fond `#FEF2F2` (l'ancienne teinte `bg-red-50`), plus le point orange et l'infobulle. Dans Zone · Constr. ou Achat · Estimé · Cible, toute la cellule est colorée dès qu'une des sous-valeurs manque. La ligne n'est pas colorée.

La pagination et le sélecteur de lignes ont un fond blanc et une bordure grise. La page active est bleu nuit. Le texte « par page · Page x / y · N parcelles » reste sur le fond de page.

Le sélecteur Affichage et les deux anciens tableaux (une ligne par propriétaire, une ligne par commune) ne sont plus à l'écran. Toutes les vues utilisent le tableau de parcelles de #1829.

Regrouper Propriétaire : jointure sur `parcelle_proprietaire` avec `date_fin_detention` nulle. Une indivision apparaît sous chaque propriétaire. Les totaux de groupe la comptent pour chacun. La carte du haut reste sur `requeteFiltree` sans cette jointure, donc une parcelle une fois. La colonne Propriétaire est masquée. Le tri des groupes est le nom du propriétaire. L'en-tête de commune ajoute le département et le code INSEE.

## Mapping

| Ancien choix Affichage / Regrouper | Nouvelle valeur `regrouper` | Rendu |
|---|---|---|
| Affichage Par parcelle (`mode=parcelle`) | commune | Tableau de parcelles groupé par commune |
| Affichage Par propriétaire (`mode=proprietaire`) | proprietaire | Même tableau, groupé par propriétaire en cours |
| Affichage Par commune (`mode=commune`) | commune | Même tableau, groupé par commune |
| Regrouper Commune | commune | Inchangé, plus « 34 · INSEE 34014 » |
| Regrouper Aucun | aucun | Inchangé, colonne Commune visible |
| Regrouper Propriétaire | proprietaire | En-tête propriétaire, parcelles en cours |

Une valeur `regrouper` explicite l'emporte sur `mode`.

## Code retiré de l'écran, conservé au back

Retiré du template : sélecteur Affichage, tableau « par propriétaire », tableau « par commune », ancre `useTabAnchor` sur `mode`.

Conservés, encore appelés :

- `parcellesCommune` et la route `prospection.communes.parcelles` (dépliage, tests, diag).
- `ProprietaireListeQuery` (dernier contact, fiche et liste propriétaires hors cet écran).
- `ProspectionParcellesSublist.vue` (fichier conservé, plus monté par Index).

Plus appelés par `index` ni par `exportExcel`, laissés dans le contrôleur parce que la route et les tests de la liste propriétaires s'appuient encore sur la requête, pas sur ces méthodes privées : `payloadProprietaire`, `payloadCommune`, `exportProprietaires`, `exportCommunes`, `resolveMode`. Aucun autre fichier ne les appelle (méthodes privées).

## DÉPLOIEMENT-TEST

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

1. Vue complète et vue restreinte, largeur 1366 : libellé, chiffre, sous-titre de chaque zone de la carte, et la barre plus sa légende sous Parcelles, sont entiers.
2. Cellule à compléter : fond rouge pâle, point orange, infobulle. Cellule complète : pas de fond.
3. Regrouper Propriétaire : Thierry GUICHEMERRE montre BS 0157 et BS 0158. Commune de Sauteyrargues est absente. Une indivision apparaît sous chaque propriétaire. La carte ne compte la parcelle qu'une fois.
4. URL `?mode=proprietaire` ouvre le regroupement Propriétaire.
5. Export Excel : une ligne par parcelle, mêmes colonnes.

Les noms Thierry GUICHEMERRE, BS 0157, BS 0158 et Commune de Sauteyrargues n'ont pas été rejoués sur une base ici.

## LEÇON

La jointure propriétaire ne doit pas entrer dans `requeteFiltree` : la carte et l'export passent par là. Elle est seulement dans `requeteListe` quand `regrouper=proprietaire`, et l'export force `aucun` avant. `normalizeFilters` doit laisser passer `proprietaire`, sinon l'écran réaffiche Commune alors que la requête a déjà dédoublé les lignes.
