mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-21 07:03:49 +00:00
adapta list of tasks for a person
This commit is contained in:
@@ -165,8 +165,8 @@ final class SingleTaskController extends AbstractController
|
||||
}
|
||||
|
||||
if ($entityType === 'person') {
|
||||
return $this->redirectToRoute('chill_task_singletask_list', [
|
||||
'person_id' => $task->getPerson()->getId()
|
||||
return $this->redirectToRoute('chill_task_singletask_by-person_list', [
|
||||
'id' => $task->getPerson()->getId()
|
||||
]);
|
||||
} elseif ($entityType === 'course') {
|
||||
return $this->redirectToRoute('chill_task_singletask_by-course_list', [
|
||||
@@ -399,17 +399,16 @@ final class SingleTaskController extends AbstractController
|
||||
$this->addFlash('success', $this->translator
|
||||
->trans("The task has been successfully removed."));
|
||||
|
||||
if($task->getContext() instanceof Person){
|
||||
if ($task->getContext() instanceof Person) {
|
||||
return $this->redirect($this->generateUrl(
|
||||
'chill_task_singletask_list',
|
||||
$request->query->get('list_params', [
|
||||
'person_id' => $person->getId()
|
||||
])));
|
||||
'chill_task_singletask_by-person_list',
|
||||
[ 'id' => $task->getPerson()->getId() ]
|
||||
));
|
||||
} else {
|
||||
return $this->redirect($this->generateUrl(
|
||||
'chill_task_singletask_by-course_list',
|
||||
['id' => $course->getId()]
|
||||
));
|
||||
['id' => $task->getCourse()->getId()]
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -753,13 +752,14 @@ final class SingleTaskController extends AbstractController
|
||||
* "/{_locale}/task/single-task/by-course/{id}",
|
||||
* name="chill_task_singletask_by-course_list")
|
||||
*/
|
||||
|
||||
public function listCourseTasks(
|
||||
AccompanyingPeriod $course,
|
||||
FormFactoryInterface $formFactory,
|
||||
Request $request
|
||||
): Response
|
||||
{
|
||||
$this->denyAccessUnlessGranted(TaskVoter::SHOW, $course);
|
||||
|
||||
$filterOrder = $this->buildFilterOrder();
|
||||
$flags = \array_merge(
|
||||
$filterOrder->getCheckboxData('status'),
|
||||
@@ -771,17 +771,22 @@ final class SingleTaskController extends AbstractController
|
||||
$flags
|
||||
);
|
||||
$paginator = $this->paginatorFactory->create($nb);
|
||||
$tasks = $this->singleTaskAclAwareRepository->findByCourse(
|
||||
$course,
|
||||
$filterOrder->getQueryString(),
|
||||
$flags,
|
||||
$paginator->getCurrentPageFirstItemNumber(),
|
||||
$paginator->getItemsPerPage(),
|
||||
[
|
||||
'startDate' => 'DESC',
|
||||
'endDate' => 'DESC',
|
||||
]
|
||||
);
|
||||
|
||||
if (0 < $nb) {
|
||||
$tasks = $this->singleTaskAclAwareRepository->findByCourse(
|
||||
$course,
|
||||
$filterOrder->getQueryString(),
|
||||
$flags,
|
||||
$paginator->getCurrentPageFirstItemNumber(),
|
||||
$paginator->getItemsPerPage(),
|
||||
[
|
||||
'startDate' => 'DESC',
|
||||
'endDate' => 'DESC',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$tasks = [];
|
||||
}
|
||||
|
||||
return $this->render(
|
||||
'@ChillTask/SingleTask/AccompanyingCourse/list.html.twig',
|
||||
@@ -793,4 +798,52 @@ final class SingleTaskController extends AbstractController
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route(
|
||||
* "/{_locale}/task/single-task/by-person/{id}",
|
||||
* name="chill_task_singletask_by-person_list")
|
||||
*/
|
||||
public function listPersonTasks(
|
||||
Person $person
|
||||
): Response {
|
||||
|
||||
$this->denyAccessUnlessGranted(TaskVoter::SHOW, $person);
|
||||
|
||||
$filterOrder = $this->buildFilterOrder();
|
||||
$flags = \array_merge(
|
||||
$filterOrder->getCheckboxData('status'),
|
||||
\array_map(fn ($i) => 'state_'.$i, $filterOrder->getCheckboxData('states'))
|
||||
);
|
||||
$nb = $this->singleTaskAclAwareRepository->countByPerson(
|
||||
$person,
|
||||
$filterOrder->getQueryString(),
|
||||
$flags
|
||||
);
|
||||
$paginator = $this->paginatorFactory->create($nb);
|
||||
|
||||
if (0 < $nb) {
|
||||
$tasks = $this->singleTaskAclAwareRepository->findByPerson(
|
||||
$person,
|
||||
$filterOrder->getQueryString(),
|
||||
$flags,
|
||||
$paginator->getCurrentPageFirstItemNumber(),
|
||||
$paginator->getItemsPerPage(),
|
||||
[
|
||||
'startDate' => 'DESC',
|
||||
'endDate' => 'DESC',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$tasks = [];
|
||||
}
|
||||
|
||||
return $this->render(
|
||||
'@ChillTask/SingleTask/Person/list.html.twig',
|
||||
[
|
||||
'tasks' => $tasks,
|
||||
'person' => $person,
|
||||
'paginator' => $paginator,
|
||||
'filter_order' => $filterOrder
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user