@extends('layout') @section('title', $p->nomVisiteur().' - Famille Letzelter') @section('meta', 'Fiche familiale de '.$p->nomVisiteur().' - famille Letzelter.') @section('robots', 'noindex, nofollow') @php $unions = $p->unions(); $parents = $p->parents(); $initiale = \Illuminate\Support\Str::upper(\Illuminate\Support\Str::substr($p->prenom ?: $p->nom ?: '?', 0, 1)); // Une seule regle des droits (Individual::peutEtreModifieePar). $peut = $p->peutEtreModifieePar(auth()->user()); $stylo = ''; @endphp @section('content')
{{-- Le visage d'une personne vivante ne sort pas sans compte connecte. --}} @if ($p->portrait_path && $p->donneesCompletesVisibles()) {{ $p->nomVisiteur() }} @else {{ $initiale }} @endif @if ($peut) {{-- Cliquer sur le medaillon ouvre le choix d'une photo, envoyee aussitot. --}}
@csrf
@endif

Fiche familiale

@include('partials.personne-entete', ['ind' => $p, 'niveau' => 'h1']) @php $d = []; if ($p->donneesCompletesVisibles()) { // Dates.afficher entoure d'une bulle celles que la source // donne pour estimees ou en annee seule. Rien n'est reecrit. if (filled($p->naissance_date)) $d[] = '★ '.\App\Support\Dates::afficher($p->naissance_date); if (filled($p->deces_date)) $d[] = '† '.\App\Support\Dates::afficher($p->deces_date); } @endphp @if ($d)

{!! implode(' · ', $d) !!}

@endif @auth @php $ficheAnnuaire = \App\Models\Profile::where('individual_id', $p->id)->whereNotNull('consent_at')->first(); @endphp @if ($ficheAnnuaire)

Sa fiche dans l'annuaire →

@endif @endauth @auth @php $u = auth()->user(); // Le rattachement par individual_id manquait : les 237 comptes // de famille sont relies ainsi, et aucun ne voyait donc le // bouton sur sa propre page. Ils en deduisaient qu'ils // n'avaient pas le droit d'y toucher. $sienne = $u->individual_id === $p->id || ($u->member && $p->member_id === $u->member->id) || ($u->profile && $u->profile->individual_id === $p->id); $peutRemplir = $peut; @endphp @if ($peutRemplir)

{{ $sienne ? 'Compléter ma fiche' : "Compléter sa fiche d'identification" }}

@endif @endauth @if ($p->member_id && $p->member)

Son album (photos & souvenirs) →

@endif
{{-- Deux fiches pour une seule personne : le lien, et ce qu'il apporte. On ne fusionne pas, chaque fiche porte une moitié de la filiation. --}} @if ($p->memePersonne) @php $apports = $p->apportDeLautreFiche(); @endphp

{{ $p->nomVisiteur() }} figure deux fois dans l'arbre, une fois par branche. @if ($apports) L'autre fiche montre {{ implode(', ', $apports) }}. @endif Voir son autre fiche →

@endif {{-- Personne + conjoint(s) en colonnes --}}
@if ($peut || ! auth()->check()) {{-- Hors connexion, le stylo mene a la connexion puis revient au formulaire. --}} {!! $stylo !!} @endif @include('partials.personne-entete', ['ind' => $p]) @include('partials.personne-champs', ['ind' => $p])
@foreach ($unions as $u) @php $conj = $u->partner1_id === $p->id ? $u->partner2 : $u->partner1; @endphp @php // La date et le lieu d'une union entre vivants suivent la regle // des donnees : reserves aux membres connectes. $unionVisible = $p->donneesCompletesVisibles() && (! $conj || $conj->donneesCompletesVisibles()); $quand = $unionVisible && filled($u->mariage_date) ? \App\Support\Dates::afficher($u->mariage_date) : null; $ou = $unionVisible && filled($u->mariage_lieu) ? e($u->mariage_lieu) : null; $rang = $unions->count() > 1 ? (['Première union', 'Deuxième union', 'Troisième union'][$loop->index] ?? 'Union') : 'Union'; @endphp
@if ($conj && ($conj->peutEtreModifieePar(auth()->user()) || ! auth()->check())) {!! $stylo !!} @endif

{{ $rang }}

@if ($quand || $ou)

{!! implode(', ', array_filter([$quand, $ou])) !!}

@elseif (! $unionVisible)

Date et lieu réservés aux membres connectés

@else

Date et lieu de l'union non renseignés

@endif @if ($conj) @include('partials.personne-entete', ['ind' => $conj, 'lien' => true]) @include('partials.personne-champs', ['ind' => $conj]) @else

Conjoint(e) inconnu(e)

@endif @if ($u->children->count())

{{ $u->children->count() }} enfant{{ $u->children->count() > 1 ? 's' : '' }} de cette union, présentés dans l'arbre ci-dessous.

@endif
@endforeach
@include('partials.gouts', ['ind' => $p]) {{-- La descendance, en cascade --}} @php $aDesDescendants = collect($cascade['unions'] ?? [])->contains(fn ($u) => ! empty($u['enfants'])); @endphp @if ($aDesDescendants)

Descendance

@php $etiquettes = [ 1 => ['enfant', 'enfants'], 2 => ['petit-enfant', 'petits-enfants'], 3 => ['arrière-petit-enfant', 'arrière-petits-enfants'], ]; $resumeDesc = []; foreach ($compteurs as $niveau => $nb) { [$sing, $plur] = $etiquettes[$niveau] ?? ['descendant', 'descendants']; $resumeDesc[] = $nb.' '.($nb > 1 ? $plur : $sing); } @endphp @if ($resumeDesc)

{{ implode(' · ', $resumeDesc) }}

@endif @include('partials.cascade-outils')
@include('partials.cascade', ['n' => $cascade, 'pivot' => true])
@include('partials.cascade-mentions') @endif {{-- Parents --}} @if ($parents->count())

Parents

@foreach ($parents as $par) {{ $par->nomVisiteur() }} @endforeach
@endif @include('partials.album-mosaique', ['ind' => $p, 'peut' => $peut])
← L'arbre généalogique
@endsection