diff --git a/components/admin/admin-client-wrapper.tsx b/components/admin/admin-client-wrapper.tsx index 18d22a1..ab7d63c 100644 --- a/components/admin/admin-client-wrapper.tsx +++ b/components/admin/admin-client-wrapper.tsx @@ -35,6 +35,9 @@ export function AdminClientWrapper({ const getFilteredTeamStats = () => { let filtered = teamStats; + // Filtrer les équipes avec 0 membres + filtered = filtered.filter((team) => team.totalMembers > 0); + if (selectedDirections.length > 0) { filtered = filtered.filter((team) => selectedDirections.includes(team.direction) diff --git a/components/admin/admin-filters.tsx b/components/admin/admin-filters.tsx index 9fe5f24..d4fdd3e 100644 --- a/components/admin/admin-filters.tsx +++ b/components/admin/admin-filters.tsx @@ -28,18 +28,30 @@ export function AdminFilters({ const hasFilters = selectedDirections.length > 0 || selectedTeams.length > 0; const directionOptions = Array.from( - new Set(teams.map((team) => team.direction)) + new Set( + teamStats + .filter((team) => team.totalMembers > 0) + .map((team) => team.direction) + ) ).map((direction) => ({ id: direction, label: direction, - count: teams.filter((team) => team.direction === direction).length, + count: teamStats.filter( + (team) => team.direction === direction && team.totalMembers > 0 + ).length, })); - const teamOptions = teams.map((team) => ({ - id: team.id, - label: `${team.name} (${team.direction})`, - count: teamStats.find((stat) => stat.teamId === team.id)?.totalMembers || 0, - })); + const teamOptions = teams + .filter((team) => { + const teamStat = teamStats.find((stat) => stat.teamId === team.id); + return teamStat && teamStat.totalMembers > 0; + }) + .map((team) => ({ + id: team.id, + label: `${team.name} (${team.direction})`, + count: + teamStats.find((stat) => stat.teamId === team.id)?.totalMembers || 0, + })); const handleReset = () => { onDirectionsChange([]); diff --git a/services/admin-service.ts b/services/admin-service.ts index 4f65de7..ff2413e 100644 --- a/services/admin-service.ts +++ b/services/admin-service.ts @@ -166,10 +166,16 @@ export class AdminService { * Génère les statistiques par direction à partir des stats d'équipes */ static generateDirectionStats(teamStats: TeamStats[]): DirectionStats[] { - const directions = Array.from(new Set(teamStats.map((t) => t.direction))); + // Filtrer d'abord les équipes avec 0 membres + const teamsWithMembers = teamStats.filter((t) => t.totalMembers > 0); + const directions = Array.from( + new Set(teamsWithMembers.map((t) => t.direction)) + ); return directions.map((direction) => { - const directionTeams = teamStats.filter((t) => t.direction === direction); + const directionTeams = teamsWithMembers.filter( + (t) => t.direction === direction + ); const totalMembers = directionTeams.reduce( (sum, t) => sum + t.totalMembers, 0