Ajout du type de champ "place" (Lieu) pour les relevés

- FieldType::Place = 'place' dans l'enum
- _field.blade.php : composant lieu-picker réutilisé pour la saisie
- Validation : integer + exists:lieux,id dans Store/UpdateReleveRequest
- buildData() : stocke {id, nom_long} dans le JSONB (évite les requêtes à l'affichage)
- releves/show.blade.php : affiche nom_long pour les champs de type place

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-05 19:33:56 +02:00
parent d38efaad60
commit 79bbf3671a
6 changed files with 30 additions and 0 deletions
+15
View File
@@ -7,6 +7,10 @@
$name = "data[{$field->name}]";
$inputId = "field_{$field->name}";
$oldValue = old("data.{$field->name}", $value);
// Pour le type place : $value est soit null, soit ['id'=>…,'nom_long'=>…]
$placeId = $field->type === FieldType::Place ? ($value['id'] ?? null) : null;
$placeNomLong = $field->type === FieldType::Place ? ($value['nom_long'] ?? '') : '';
@endphp
<div class="space-y-1">
@@ -94,6 +98,17 @@
@enderror
@break
@case(FieldType::Place)
<x-lieu-picker
:name="$name"
:value="$placeId"
:display-value="$placeNomLong"
:required="$field->required"
label=""
placeholder="Rechercher un lieu…"
/>
@break
@endswitch
@error("data.{$field->name}")
+2
View File
@@ -42,6 +42,8 @@
<dd class="col-span-2 text-gray-900 dark:text-white">
@if($val === null || $val === '')
<span class="text-gray-400 dark:text-gray-500"></span>
@elseif(is_array($val) && isset($val['nom_long']))
{{ $val['nom_long'] }}
@elseif(is_array($val))
{{ $val['valeur'] ?? '—' }}
@if(!empty($val['calendrier']) && $val['calendrier'] !== 'gregorien')