diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index 159ead7..9a7729d 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -26,6 +26,30 @@ class HomeController extends AbstractController 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, diff --git a/src/Controller/ProjectController.php b/src/Controller/ProjectController.php index 4bcefe1..89a2fdc 100644 --- a/src/Controller/ProjectController.php +++ b/src/Controller/ProjectController.php @@ -83,7 +83,7 @@ class ProjectController extends AbstractController $redmine = $this->redmineService->getProject($project->getId(), $this->getParameter('redmineApikey')); $project->setRedmine($redmine); $em->flush(); - $this->redmineService->majProjectIssues($project, $this->getParameter('redmineApikey'), false); + $this->redmineService->majProjectIssues($project, $this->getParameter('redmineApikey'), true); return $this->redirectToRoute('app_admin_project'); } diff --git a/src/Service/RedmineService.php b/src/Service/RedmineService.php index f9cf4d2..25273ce 100644 --- a/src/Service/RedmineService.php +++ b/src/Service/RedmineService.php @@ -203,9 +203,11 @@ class RedmineService // Calcul de la position sprint $issueSprintId = $rissue['sprint']['agile_sprint_id']; $sprintPosition = ''; - foreach ($project->getRedmine()['sprints'] as $sprint) { + $sprintIndex = null; + foreach ($project->getRedmine()['sprints'] as $key => $sprint) { if ($sprint['id'] === $issueSprintId) { - $sprintPosition = $sprint['id']; // ou $index + 1 si tu veux position humaine + $sprintPosition = $sprint['id']; + $sprintIndex = $key; break; } } diff --git a/templates/home/home.html.twig b/templates/home/home.html.twig index 85fd724..d16eac7 100644 --- a/templates/home/home.html.twig +++ b/templates/home/home.html.twig @@ -2,6 +2,14 @@ {% block localstyle %}