filterHandler->getFilterSettings(); $form = $this->createForm(StatisticsFilterType::class, $filterDto); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $filterDto = $this->filterHandler->handleRequest($form); } $statistics = $this->feedbackRepository->getAverageRatingsByQuestionAndFeedbackSet( $filterDto->getEffectiveDateFrom(), $filterDto->getEffectiveDateTo(), ); // Prepare chart data for each feedback set $chartsData = []; foreach ($statistics as $stat) { $feedbackSet = $stat['feedbackSet']; $questions = $feedbackSet->getRatings(); $averages = $stat['averages']; // Build labels (1, 2, 3, ...) for x-axis $labels = []; $data = []; foreach ($questions as $index => $question) { $labels[] = (string) ($index + 1); $data[] = $averages[$index] ?? 0.0; } $chartsData[] = [ 'feedbackSet' => $feedbackSet, 'labels' => $labels, 'data' => $data, 'questions' => $questions, 'count' => $stat['count'], ]; } return $this->render('administrative/statistics/feedback_ratings.html.twig', [ 'form' => $form->createView(), 'filterDto' => $filterDto, 'chartsData' => $chartsData, ]); } }