redmineService = $redmineService; } #[Route('/', name: 'app_home')] public function home(Request $request): Response { $project = $request->getSession()->get('project'); if (!$project) { return $this->noproject(); } $redmine = $this->redmineService->getProject($project->getId(), $this->getParameter('redmineApikey')); $project->setRedmine($redmine); $this->redmineService->majProjectIssues($project, $this->getParameter('redmineApikey'), false); $predmine = $project->getRedmine(); foreach ($project->getIssues() as $issue) { foreach ($predmine['sprints'] as $key => $sprint) { if ($sprint['id'] === $issue->getRedmine()['sprint']['agile_sprint_id']) { if (!array_key_exists('story_points', $predmine['sprints'][$key])) { $predmine['sprints'][$key]['story_points']['total'] = 0; } $predmine['sprints'][$key]['story_points']['total'] += $issue->getRedmine()['sprint']['story_points']; if (!array_key_exists($issue->getRedmine()['status']['id'], $predmine['sprints'][$key]['story_points'])) { $predmine['sprints'][$key]['story_points'][$issue->getRedmine()['status']['id']] = 0; } $predmine['sprints'][$key]['story_points'][$issue->getRedmine()['status']['id']] += $issue->getRedmine()['sprint']['story_points']; } } } $project->setRedmine($predmine); return $this->render('home/home.html.twig', [ 'usemenu' => true, 'usesidebar' => false, 'project' => $project, ]); } #[Route('/admin', name: 'app_admin')] public function admin(): Response { return $this->render('home/blank.html.twig', [ 'usemenu' => true, 'usesidebar' => true, ]); } #[Route('/noproject', name: 'app_noproject')] public function noproject(): Response { return $this->render('home/noproject.html.twig', [ 'usemenu' => true, 'usesidebar' => false, ]); } #[Route('/user/issue/{id}', name: 'issue_view')] public function view(int $id, IssueRepository $issueRepository): Response { $issue = $issueRepository->find($id); return $this->render('issue/view.html.twig', [ 'issue' => $issue, ]); } }