Gestion utilisateurs, limites recherche, filtres lieux/sources, fix logo prod
- Admin : CRUD complet utilisateurs (créer, modifier nom/email/mdp/rôle, supprimer) avec garde-fous (dernier admin, compte propre) - Recherche : limite configurable par l'admin (défaut 200), bannière d'avertissement quand la limite est atteinte, plus de pagination (résultats en bloc) - Lieux : liste non chargée sans filtre actif (performance sur grands volumes) - Sources : idem pour admin/responsables ; membres voient toujours leurs sources - Logo 404 prod : +FollowSymLinks dans .htaccess, storage:link dans l'assistant d'installation, bouton "Recréer le lien" dans Administration → Paramètres Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Enums\SourceStatus;
|
||||
use App\Models\Lieu;
|
||||
use App\Models\Releve;
|
||||
use App\Models\SourceType;
|
||||
use App\Services\SiteSettingsService;
|
||||
use App\Support\DbCompat;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
@@ -18,6 +19,7 @@ class RechercheController extends Controller
|
||||
$sourceTypes = SourceType::orderBy('nom')->get(['id', 'nom']);
|
||||
$resultats = null;
|
||||
$total = null;
|
||||
$limited = false;
|
||||
|
||||
// Charger le lieu sélectionné pour pré-remplir le picker
|
||||
$lieuSelectionne = $request->filled('lieu_id')
|
||||
@@ -25,10 +27,10 @@ class RechercheController extends Controller
|
||||
: null;
|
||||
|
||||
if ($request->anyFilled(['q', 'source_type_id', 'lieu_id', 'annee_debut', 'annee_fin'])) {
|
||||
[$resultats, $total] = $this->search($request);
|
||||
[$resultats, $total, $limited] = $this->search($request);
|
||||
}
|
||||
|
||||
return view('recherche.index', compact('sourceTypes', 'resultats', 'total', 'lieuSelectionne'));
|
||||
return view('recherche.index', compact('sourceTypes', 'resultats', 'total', 'limited', 'lieuSelectionne'));
|
||||
}
|
||||
|
||||
private function search(Request $request): array
|
||||
@@ -85,15 +87,17 @@ class RechercheController extends Controller
|
||||
$query->whereRaw("date_evenement <= ?", [$request->integer('annee_fin') . '-12-31']);
|
||||
}
|
||||
|
||||
// ── Tri + pagination ────────────────────────────────────────────────
|
||||
$total = $query->count();
|
||||
// ── Limite configurable par l'admin ─────────────────────────────────
|
||||
$max = SiteSettingsService::searchMaxResults();
|
||||
$total = $query->count();
|
||||
|
||||
$resultats = $query
|
||||
->orderByRaw(DbCompat::nullsLast('nom'))
|
||||
->orderByRaw(DbCompat::nullsLast('date_evenement'))
|
||||
->paginate(25)
|
||||
->withQueryString();
|
||||
->limit($max)
|
||||
->get();
|
||||
|
||||
return [$resultats, $total];
|
||||
return [$resultats, $total, $total > $max];
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user