Checkpoint: Ajout d'un filtre par public cible sur la page de gestion des séquences pour faciliter la recherche des séquences destinées à un profil spécifique (Directeurs, Chefs de service, Autre)

This commit is contained in:
Manus Sandbox
2025-11-17 07:57:18 -05:00
parent 3f16cd8a48
commit 01e2b8b2d4
2 changed files with 27 additions and 2 deletions

View File

@@ -27,6 +27,7 @@ export default function AdminSequences() {
const [searchTerm, setSearchTerm] = useState("");
const [filterLieu, setFilterLieu] = useState<string>("all");
const [filterStatut, setFilterStatut] = useState<string>("all");
const [filterPublicCible, setFilterPublicCible] = useState<string>("all");
const [sortBy, setSortBy] = useState<"date" | "lieu" | "capacite">("date");
const [formData, setFormData] = useState({
@@ -219,7 +220,8 @@ export default function AdminSequences() {
const matchSearch = seq.nom.toLowerCase().includes(searchTerm.toLowerCase());
const matchLieu = filterLieu === "all" || seq.lieu === filterLieu;
const matchStatut = filterStatut === "all" || seq.statut === filterStatut;
return matchSearch && matchLieu && matchStatut;
const matchPublicCible = filterPublicCible === "all" || seq.publicCible === filterPublicCible;
return matchSearch && matchLieu && matchStatut && matchPublicCible;
});
filtered.sort((a, b) => {
@@ -235,7 +237,7 @@ export default function AdminSequences() {
});
return filtered;
}, [sequences, searchTerm, filterLieu, filterStatut, sortBy]);
}, [sequences, searchTerm, filterLieu, filterStatut, filterPublicCible, sortBy]);
const uniqueLieux = useMemo(() => {
if (!sequences) return [];
@@ -534,6 +536,21 @@ export default function AdminSequences() {
</Select>
</div>
<div className="space-y-2">
<Label>Public cible</Label>
<Select value={filterPublicCible} onValueChange={setFilterPublicCible}>
<SelectTrigger>
<SelectValue />
</SelectTrigger>
<SelectContent>
<SelectItem value="all">Tous les publics</SelectItem>
<SelectItem value="directeur">Directeurs</SelectItem>
<SelectItem value="chef_service">Chefs de service</SelectItem>
<SelectItem value="autre">Autre</SelectItem>
</SelectContent>
</Select>
</div>
<div className="space-y-2">
<Label>Trier par</Label>
<Select value={sortBy} onValueChange={(v: any) => setSortBy(v)}>