- {[
- {
- label: "Expert",
- count: team.members.filter(
- (m) =>
- m.skills.reduce((avg, s) => avg + s.level, 0) /
- m.skills.length >=
- 2.5
- ).length,
- color: "bg-green-500",
- },
- {
- label: "Avancé",
- count: team.members.filter((m) => {
- const avg =
- m.skills.reduce((avg, s) => avg + s.level, 0) /
- m.skills.length;
- return avg >= 2 && avg < 2.5;
- }).length,
- color: "bg-blue-500",
- },
- {
- label: "Intermédiaire",
- count: team.members.filter((m) => {
- const avg =
- m.skills.reduce((avg, s) => avg + s.level, 0) /
- m.skills.length;
- return avg >= 1 && avg < 2;
- }).length,
- color: "bg-orange-500",
- },
- {
- label: "Débutant",
- count: team.members.filter(
- (m) =>
- m.skills.reduce((avg, s) => avg + s.level, 0) /
- m.skills.length <
- 1
- ).length,
- color: "bg-red-500",
- },
- ].map((level, idx) => (
-
-
-
-
{level.count}
-
-
+ {(() => {
+ // Calculer la répartition par compétence individuelle
+ const allSkills = team.members.flatMap((m) => m.skills);
+ const totalSkills = allSkills.length;
+
+ const levelDistribution = {
+ expert: allSkills.filter((s) => s.level === 3).length,
+ autonomous: allSkills.filter((s) => s.level === 2).length,
+ notAutonomous: allSkills.filter((s) => s.level === 1).length,
+ never: allSkills.filter((s) => s.level === 0).length,
+ };
+
+ return [
+ {
+ label: "Expert",
+ count: levelDistribution.expert,
+ total: totalSkills,
+ color: "bg-green-500",
+ },
+ {
+ label: "Autonome",
+ count: levelDistribution.autonomous,
+ total: totalSkills,
+ color: "bg-blue-500",
+ },
+ {
+ label: "Pas autonome",
+ count: levelDistribution.notAutonomous,
+ total: totalSkills,
+ color: "bg-orange-500",
+ },
+ {
+ label: "Jamais utilisé",
+ count: levelDistribution.never,
+ total: totalSkills,
+ color: "bg-red-500",
+ },
+ ].map((level, idx) => (
+
+
+
+
{level.count}
+
+
+ {((level.count / level.total) * 100).toFixed(0)}%
+
-
- {((level.count / team.totalMembers) * 100).toFixed(0)}%
-
-
- ))}
+ ));
+ })()}
@@ -221,16 +220,6 @@ export function TeamOverviewTab({
{teamInsights.totalLearners}