refactor list by course: use acl aware repository

This commit is contained in:
2021-10-28 14:41:19 +02:00
parent 4da32dc5ca
commit 4017f8db48
6 changed files with 304 additions and 254 deletions

View File

@@ -472,7 +472,11 @@ final class SingleTaskController extends AbstractController
$filterOrder->getQueryString(),
$flags,
$paginator->getCurrentPageFirstItemNumber(),
$paginator->getItemsPerPage()
$paginator->getItemsPerPage(),
[
'startDate' => 'DESC',
'endDate' => 'DESC',
]
);
return $this->render('@ChillTask/SingleTask/List/index.html.twig', [
@@ -694,6 +698,7 @@ final class SingleTaskController extends AbstractController
}
/*
protected function getPersonParam(EntityManagerInterface $em)
{
$person = $em->getRepository(Person::class)
@@ -722,6 +727,7 @@ final class SingleTaskController extends AbstractController
return $user;
}
*/
/**
* Creates a form to delete a Task entity by id.
@@ -750,34 +756,40 @@ final class SingleTaskController extends AbstractController
public function listCourseTasks(
AccompanyingPeriod $course,
SingleTaskRepository $taskRepository,
FormFactoryInterface $formFactory,
Request $request
): Response
{
$em = $this->getDoctrine()->getManager();
$tasks = $taskRepository
->findBy(
array('course' => $course)
);
$form = $formFactory->createNamed(null, SingleTaskListType::class, null, [
'accompanyingCourse' => $course,
'method' => Request::METHOD_GET,
'csrf_protection' => false,
'add_type' => true
]);
$filterOrder = $this->buildFilterOrder();
$flags = \array_merge(
$filterOrder->getCheckboxData('status'),
\array_map(fn ($i) => 'state_'.$i, $filterOrder->getCheckboxData('states'))
);
$nb = $this->singleTaskAclAwareRepository->countByCourse(
$course,
$filterOrder->getQueryString(),
$flags
);
$paginator = $this->paginatorFactory->create($nb);
$tasks = $this->singleTaskAclAwareRepository->findByCourse(
$course,
$filterOrder->getQueryString(),
$flags,
$paginator->getCurrentPageFirstItemNumber(),
$paginator->getItemsPerPage(),
[
'startDate' => 'DESC',
'endDate' => 'DESC',
]
);
return $this->render(
'@ChillTask/SingleTask/index.html.twig',
'@ChillTask/SingleTask/AccompanyingCourse/list.html.twig',
[
'tasks' => $tasks,
'accompanyingCourse' => $course,
'layout' => '@ChillPerson/AccompanyingCourse/layout.html.twig',
'form' => $form->createView(),
'title' => $this->translator->trans('Tasks for this accompanying period')
'paginator' => $paginator,
'filter_order' => $filterOrder
]);
}