Tableau de bord — Administration

{{-- Bandeau mise à jour disponible --}} @if($updateAvailable)

Mise à jour disponible : v{{ $latestRelease['version'] }} (installé : v{{ $installedVersion }})

docker compose exec app php artisan app:update

@if($latestRelease['published_at']) Publié {{ \Carbon\Carbon::parse($latestRelease['published_at'])->diffForHumans() }} @endif
@endif {{-- Compteurs globaux --}}
@php $statusCards = [ ['label' => 'À faire', 'key' => 'a_faire', 'color' => 'bg-gray-50 dark:bg-gray-700 border-gray-200 dark:border-gray-700 text-gray-700 dark:text-gray-300'], ['label' => 'En cours', 'key' => 'en_cours', 'color' => 'bg-blue-50 border-blue-200 text-blue-700'], ['label' => 'À valider', 'key' => 'a_valider', 'color' => 'bg-yellow-50 border-yellow-200 dark:border-yellow-700 text-yellow-700'], ['label' => 'Terminé', 'key' => 'termine', 'color' => 'bg-green-50 dark:bg-green-900/30 border-green-200 dark:border-green-700 text-green-700'], ]; @endphp @foreach($statusCards as $card) {{ $sourcesByStatus[$card['key']] ?? 0 }} {{ $card['label'] }} source{{ ($sourcesByStatus[$card['key']] ?? 0) > 1 ? 's' : '' }} @endforeach
{{-- Ligne de métriques secondaires --}}

{{ number_format($totalReleves) }}

relevé{{ $totalReleves > 1 ? 's' : '' }} saisi{{ $totalReleves > 1 ? 's' : '' }}

{{ $totalUsers }}

utilisateur{{ $totalUsers > 1 ? 's' : '' }}

Répartition des rôles

@foreach(\App\Enums\UserRole::cases() as $role) @php $count = (int)($usersByRole[$role->value] ?? 0); @endphp
{{ $role->label() }} {{ $count }}
@endforeach
{{-- Activité mensuelle (6 derniers mois) --}} @if($activiteMensuelle->isNotEmpty())

Relevés saisis — 6 derniers mois

@php $maxReleves = $activiteMensuelle->max('total') ?: 1; @endphp
@foreach($activiteMensuelle as $mois) @php $h = max(4, round(($mois->total / $maxReleves) * 96)); @endphp
{{ $mois->total }}
{{ $mois->mois }}
@endforeach
@endif {{-- Raccourcis admin --}}
@foreach([ ['label' => 'Utilisateurs', 'route' => 'admin.utilisateurs.index', 'icon' => 'M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z'], ['label' => 'Sections', 'route' => 'admin.sections.index', 'icon' => 'M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-2 10v-5a1 1 0 00-1-1h-2a1 1 0 00-1 1v5m4 0H9'], ['label' => 'Types de sources','route' => 'admin.source-types.index','icon' => 'M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2'], ['label' => 'Types de lieux', 'route' => 'admin.lieu-types.index', 'icon' => 'M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z'], ] as $link) {{ $link['label'] }} @endforeach
{{-- Sources à valider --}}

En attente de validation

Voir tout
@forelse($sourcesAValider as $source)
{{ $source->nom }}

{{ $source->sourceType->nom }}

{{ $source->updated_at->diffForHumans() }}
@empty

Aucune source en attente.

@endforelse
{{-- Relevés récents --}}

Derniers relevés saisis

Recherche
@forelse($relevesRecents as $releve)
{{ $releve->nom ?? '—' }} @if($releve->prenom) {{ $releve->prenom }} @endif

{{ $releve->source->nom }} · {{ $releve->createur?->name ?? '?' }}

{{ $releve->created_at->diffForHumans() }}
@empty

Aucun relevé pour l'instant.

@endforelse
{{-- Version --}}
MesRelevés v{{ $installedVersion }} @if(! $updateAvailable) à jour @endif