up pages rues et évolutions dans le temps

This commit is contained in:
Tykayn 2025-07-12 12:53:06 +02:00 committed by tykayn
parent 7355600e6b
commit c8e3cf2ada
10 changed files with 329 additions and 14 deletions

View file

@ -90,12 +90,12 @@ class FollowUpController extends AbstractController
$all_points = [];
foreach ($followups as $fu) {
$series[$fu->getName()][] = [
'date' => $fu->getDate()->format('c'),
'date' => $fu->getDate()->format('Y-m-d'),
'value' => $fu->getMeasure(),
'name' => $fu->getName(),
];
$all_points[] = [
'date' => $fu->getDate()->format('c'),
'date' => $fu->getDate()->format('Y-m-d'),
'type' => $fu->getName(),
'name' => $fu->getName(),
'value' => $fu->getMeasure(),
@ -110,6 +110,43 @@ class FollowUpController extends AbstractController
});
}
unset($points);
// Ajout du calcul all_completion_data
$themes = \App\Service\FollowUpService::getFollowUpThemes();
$all_completion_data = [];
$latest_diffs = [];
foreach ($themes as $type => $label) {
$all_completion_data[$type] = $series[$type . '_completion'] ?? [];
// Calcul du diff sur 7 jours pour le nombre et la complétion
$count_series = $series[$type . '_count'] ?? [];
$completion_series = $series[$type . '_completion'] ?? [];
$count_now = count($count_series) ? $count_series[count($count_series)-1]['value'] : null;
$count_7d = null;
foreach (array_reverse($count_series) as $point) {
$date = \DateTime::createFromFormat('Y-m-d', $point['date']);
if ($date && $date <= (new \DateTime('-7 days'))) {
$count_7d = $point['value'];
break;
}
}
$completion_now = count($completion_series) ? $completion_series[count($completion_series)-1]['value'] : null;
$completion_7d = null;
foreach (array_reverse($completion_series) as $point) {
$date = \DateTime::createFromFormat('Y-m-d', $point['date']);
if ($date && $date <= (new \DateTime('-7 days'))) {
$completion_7d = $point['value'];
break;
}
}
$latest_diffs[$type] = [
'count_now' => $count_now,
'count_7d' => $count_7d,
'count_diff' => ($count_now !== null && $count_7d !== null) ? $count_now - $count_7d : null,
'completion_now' => $completion_now,
'completion_7d' => $completion_7d,
'completion_diff' => ($completion_now !== null && $completion_7d !== null) ? $completion_now - $completion_7d : null,
'label' => $label,
];
}
return $this->render('admin/followup_graph.html.twig', [
'stats' => $stats,
'series' => $series,
@ -118,6 +155,8 @@ class FollowUpController extends AbstractController
'followup_icons' => FollowUpService::getFollowUpIcons(),
'followup_overpass' => FollowUpService::getFollowUpOverpassQueries(),
'completion_tags' => FollowUpService::getFollowUpCompletionTags(),
'all_completion_data' => $all_completion_data,
'latest_diffs' => $latest_diffs,
]);
}