@extends('layout') @section('title','Recommandations') @section('content') @php $canWrite = auth()->user()?->hasPermission('write'); $priorityStyle = [ 'high' => 'background:#4f46e5;color:#fff', 'medium' => 'background:#dbeafe;color:#1e40af', 'low' => 'background:#f1f5f9;color:#475569', ]; $filterQuery = fn (array $override) => array_filter(array_merge(['status' => $status, 'priority' => $priority, 'scope' => $scope], $override), fn ($v) => $v !== '' && $v !== null); @endphp

Recommandations

@if($canWrite)
@csrf
@endif

Propositions d'actions déduites des résultats des campagnes : formations à prévoir, entités ou projets à sensibiliser, tests à rejouer ou à repenser. Les critères se gèrent dans Règles de recommandation.

@foreach(\App\Models\Recommendation::STATUSES as $key => $label)
{{ $counts[$key] ?? 0 }}
{{ $label }}
@endforeach
Réinitialiser
@forelse($recommendations as $reco)
{{ \App\Models\Recommendation::PRIORITIES[$reco->priority] ?? $reco->priority }} {{ \App\Models\Recommendation::SCOPES[$reco->scope] ?? $reco->scope }} · {{ $reco->subject_label }} {{ \App\Models\Recommendation::STATUSES[$reco->status] ?? $reco->status }}

{{ $reco->title }}

{{ $reco->detail }}

Action proposée : {{ $reco->action }}

@php $peopleLink = match ($reco->scope) { 'entity' => route('employees.index', ['entity' => $reco->subject_id]), 'project' => route('employees.index', ['project' => $reco->subject_id]), 'department' => route('employees.index', ['department' => $reco->subject_label]), 'employee' => route('employees.index', ['q' => $reco->subject_label]), default => null, }; @endphp @if($peopleLink)

Voir les employés concernés →

@endif @if($reco->campaign)

Campagne concernée : {{ $reco->campaign->name }}

@endif
@if($canWrite)
@csrf @method('PATCH')
@endif
@empty

Aucune recommandation pour ces critères. Elles apparaissent dès que des campagnes ont été envoyées et que leurs résultats dépassent les seuils.

@endforelse {{ $recommendations->links() }} @endsection