feat: update dashboard components and analytics for 7-day summaries

- Modified `ManagerWeeklySummary`, `MetricsTab`, and `ProductivityAnalytics` to reflect a focus on the last 7 days instead of the current week.
- Enhanced `ManagerSummaryService` and `MetricsService` to calculate metrics over a sliding 7-day window, improving data relevance.
- Added a new utility function `formatDistanceToNow` for better date formatting in French.
- Updated comments and documentation to clarify changes in timeframes.
This commit is contained in:
Julien Froidefond
2025-09-23 21:22:59 +02:00
parent 336b5c1006
commit fd3827214f
14 changed files with 738 additions and 32 deletions

View File

@@ -27,7 +27,7 @@ export default function ManagerWeeklySummary({ initialSummary }: ManagerWeeklySu
const formatPeriod = () => {
return `Semaine du ${format(summary.period.start, 'dd MMM', { locale: fr })} au ${format(summary.period.end, 'dd MMM yyyy', { locale: fr })}`;
return `7 derniers jours (${format(summary.period.start, 'dd MMM', { locale: fr })} - ${format(summary.period.end, 'dd MMM yyyy', { locale: fr })})`;
};
const getPriorityBadgeStyle = (priority: 'low' | 'medium' | 'high') => {
@@ -134,7 +134,7 @@ export default function ManagerWeeklySummary({ initialSummary }: ManagerWeeklySu
</div>
<div className="bg-green-50 p-4 rounded-lg border-l-4 border-green-400">
<h3 className="font-medium text-green-900 mb-2">🔮 Focus semaine prochaine</h3>
<h3 className="font-medium text-green-900 mb-2">🔮 Focus 7 prochains jours</h3>
<p className="text-green-800">{summary.narrative.nextWeekFocus}</p>
</div>
</CardContent>
@@ -346,7 +346,7 @@ export default function ManagerWeeklySummary({ initialSummary }: ManagerWeeklySu
{activeView === 'accomplishments' && (
<Card>
<CardHeader>
<h2 className="text-lg font-semibold"> Accomplissements de la semaine</h2>
<h2 className="text-lg font-semibold"> Accomplissements des 7 derniers jours</h2>
<p className="text-sm text-[var(--muted-foreground)]">
{summary.keyAccomplishments.length} accomplissements significatifs {summary.metrics.totalTasksCompleted} tâches {summary.metrics.totalCheckboxesCompleted} todos complétés
</p>