-
-
+
+
-
RÉFÉRENTIEL
+
RÉFÉRENTIEL
@@ -123,8 +121,8 @@ export function AdminOverviewCards({
0
)}
-
Compétences suivies
-
+
Compétences suivies
+
{skillCategories.length} catégories
diff --git a/components/admin/overview/direction-overview.tsx b/components/admin/overview/direction-overview.tsx
index 98cc564..1baa7ec 100644
--- a/components/admin/overview/direction-overview.tsx
+++ b/components/admin/overview/direction-overview.tsx
@@ -25,6 +25,51 @@ interface DirectionOverviewProps {
onExportTeamReport?: (team: any) => void;
}
+// Fonction pour obtenir les couleurs de direction
+function getDirectionColors(direction: string) {
+ const directionLower = direction.toLowerCase();
+ if (directionLower.includes("tech") || directionLower.includes("dev")) {
+ return {
+ header: "from-blue-600/30 to-cyan-600/30",
+ border: "border-blue-500/40",
+ icon: "bg-blue-500/20 border-blue-500/30",
+ };
+ } else if (
+ directionLower.includes("design") ||
+ directionLower.includes("ux")
+ ) {
+ return {
+ header: "from-purple-600/30 to-pink-600/30",
+ border: "border-purple-500/40",
+ icon: "bg-purple-500/20 border-purple-500/30",
+ };
+ } else if (
+ directionLower.includes("data") ||
+ directionLower.includes("analytics")
+ ) {
+ return {
+ header: "from-emerald-600/30 to-teal-600/30",
+ border: "border-emerald-500/40",
+ icon: "bg-emerald-500/20 border-emerald-500/30",
+ };
+ } else if (
+ directionLower.includes("security") ||
+ directionLower.includes("sec")
+ ) {
+ return {
+ header: "from-red-600/30 to-orange-600/30",
+ border: "border-red-500/40",
+ icon: "bg-red-500/20 border-red-500/30",
+ };
+ } else {
+ return {
+ header: "from-purple-600/30 to-blue-600/30",
+ border: "border-purple-500/40",
+ icon: "bg-purple-500/20 border-purple-500/30",
+ };
+ }
+}
+
export function DirectionOverview({
direction,
teams,
@@ -34,27 +79,31 @@ export function DirectionOverview({
onViewTeamDetails = () => {},
onExportTeamReport = () => {},
}: DirectionOverviewProps) {
+ const colors = getDirectionColors(direction);
+
return (
-
-
+
+
-
-
+
+
Direction {direction}
-
-
-
+
+
+
{totalMembers}
-
-
+
+
Niveau: {getSkillLevelLabel(averageSkillLevel)}
@@ -66,10 +115,10 @@ export function DirectionOverview({
{/* Direction Metrics */}
{/* Top Categories */}
-
+
-
-
+
+
Top Catégories
@@ -77,7 +126,7 @@ export function DirectionOverview({
{topCategories.slice(0, 4).map((cat, idx) => (
{cat.category}
@@ -86,7 +135,7 @@ export function DirectionOverview({
cat.averageLevel
)}`}
/>
-
+
{cat.averageLevel.toFixed(1)}
@@ -96,41 +145,41 @@ export function DirectionOverview({
{/* Overall Progress */}
-
+
-
-
+
+
Progression Globale
-
+
Maîtrise globale:
{((averageSkillLevel / 3) * 100).toFixed(0)}%
-
-
+
Basé sur {teams.length} équipes
{/* Team Distribution */}
-
+
-
-
+
+
Répartition
@@ -139,17 +188,17 @@ export function DirectionOverview({
{teams.length}
-
équipes actives
+
équipes actives
- Membres par équipe:
+ Membres par équipe:
{(totalMembers / teams.length).toFixed(1)}
-
Équipes performantes:
+
Équipes performantes:
{teams.filter((t) => t.averageSkillLevel > 2).length}
@@ -162,8 +211,8 @@ export function DirectionOverview({
{/* Teams List */}
-
-
+
+
Équipes de la direction
diff --git a/components/admin/team-detail/team-stats-row.tsx b/components/admin/team-detail/team-stats-row.tsx
index 22fbe7d..48392fb 100644
--- a/components/admin/team-detail/team-stats-row.tsx
+++ b/components/admin/team-detail/team-stats-row.tsx
@@ -81,7 +81,7 @@ export function TeamStatsRow({
onViewReport,
}: TeamStatsRowProps) {
return (
-
+
{/* Layout horizontal compact */}
{/* Informations de base */}
@@ -90,10 +90,10 @@ export function TeamStatsRow({
{teamName}
-
+
-
- {totalMembers}
+
+ {totalMembers}
@@ -101,14 +101,14 @@ export function TeamStatsRow({
{/* Mini barre de progression */}
- Niveau
-
+ Niveau
+
{((averageSkillLevel / 3) * 100).toFixed(0)}%
-
+
{averageSkillLevel.toFixed(1)}
-
/ 3.0
+
/ 3.0
{skillCoverage.toFixed(0)}%
-
Couv.
+
Couv.
@@ -172,7 +172,7 @@ export function TeamStatsRow({
{topSkills.slice(0, 3).map((skill, idx) => (
@@ -192,7 +192,7 @@ export function TeamStatsRow({
variant="outline"
size="sm"
onClick={onViewReport}
- className="h-8 px-3 bg-white/5 border-white/20 text-white hover:bg-white/10 hover:border-white/30"
+ className="h-8 px-3 bg-slate-700/50 border-slate-500/40 text-white hover:bg-slate-600/60 hover:border-slate-400/50 shadow-sm"
>
@@ -200,7 +200,7 @@ export function TeamStatsRow({
variant="outline"
size="sm"
onClick={onViewDetails}
- className="h-8 px-3 bg-white/5 border-white/20 text-white hover:bg-white/10 hover:border-white/30"
+ className="h-8 px-3 bg-slate-700/50 border-slate-500/40 text-white hover:bg-slate-600/60 hover:border-slate-400/50 shadow-sm"
>