diff --git a/src/Controller/ProjectController.php b/src/Controller/ProjectController.php index bb50c07..ed55ddd 100644 --- a/src/Controller/ProjectController.php +++ b/src/Controller/ProjectController.php @@ -68,6 +68,26 @@ class ProjectController extends AbstractController ]); } + #[Route('/admin/report/{month}', name: 'app_project_report')] + public function reportProject(int $month, ProjectRepository $projectRepository, IssueRepository $issueRepository): Response + { + $date=new \DateTime($month.'01'); + $projects = $projectRepository->findAll(); + foreach($projects as $project) { + $redmine = $this->redmineService->getProject($project->getId(), $this->getParameter('redmineApikey')); + $project->setRedmine($redmine); + $this->redmineService->majProjectIssues($project, $this->getParameter('redmineApikey'), false); + } + + return $this->render('project/report.html.twig', [ + 'usemenu' => true, + 'usesidebar' => false, + 'project' => $project, + 'issues' => $issueRepository->findIssues(null,true), + 'date' => $date, + ]); + } + #[Route('/admin/project', name: 'app_admin_project')] public function list(ProjectRepository $projectRepository): Response { diff --git a/src/Repository/IssueRepository.php b/src/Repository/IssueRepository.php index 9ffb5b9..167f0c4 100644 --- a/src/Repository/IssueRepository.php +++ b/src/Repository/IssueRepository.php @@ -17,9 +17,13 @@ class IssueRepository extends ServiceEntityRepository parent::__construct($registry, Issue::class); } - public function findIssues(Project $project, bool $closed = false): array + public function findIssues(?Project $project, bool $closed = false): array { - $criteria = ['project' => $project]; + $criteria=[]; + if($project) { + $criteria = ['project' => $project]; + } + if (!$closed) { $criteria['isClosed'] = false; } diff --git a/templates/project/report.html.twig b/templates/project/report.html.twig new file mode 100644 index 0000000..35ebc7b --- /dev/null +++ b/templates/project/report.html.twig @@ -0,0 +1,128 @@ +{% extends 'base.html.twig' %} + +{% block body %} + {% for status in project.redmine.issue_statuses %} +