|
|
@ -18,6 +18,7 @@ use Symfony\Component\HttpFoundation\Response; |
|
|
|
use Symfony\Component\HttpFoundation\StreamedResponse; |
|
|
|
use Symfony\Component\Routing\Attribute\Route; |
|
|
|
use Symfony\Component\Routing\Generator\UrlGeneratorInterface; |
|
|
|
use Symfony\Component\Security\Http\Attribute\IsGranted; |
|
|
|
use Symfony\Component\Workflow\WorkflowInterface; |
|
|
|
|
|
|
|
#[Route('/task')]
|
|
|
@ -25,6 +26,7 @@ class TaskController extends AbstractController |
|
|
|
{ |
|
|
|
// Page de créatiom d’une tâche
|
|
|
|
#[Route('/create', name: 'app_task_create')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function create(Request $request, EntityManagerInterface $entityManager): Response |
|
|
|
{ |
|
|
|
if (!$request->query->has('slug')) { |
|
|
@ -154,6 +156,7 @@ class TaskController extends AbstractController |
|
|
|
|
|
|
|
// Ajoute un commentaire à la tâche
|
|
|
|
#[Route('/{slug}/comment', name: 'app_task_comment')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function comment(Request $request, EntityManagerInterface $entityManager, $slug): Response |
|
|
|
{ |
|
|
|
$repository = $entityManager->getRepository(Task::class); |
|
|
@ -190,6 +193,7 @@ class TaskController extends AbstractController |
|
|
|
|
|
|
|
// Modifie les informations d’une tâche
|
|
|
|
#[Route('/{slug}/update', name: 'app_task_update')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function update(Request $request, EntityManagerInterface $entityManager, $slug): Response |
|
|
|
{ |
|
|
|
$repository = $entityManager->getRepository(Task::class); |
|
|
@ -229,6 +233,7 @@ class TaskController extends AbstractController |
|
|
|
|
|
|
|
// Supprimer une tâche
|
|
|
|
#[Route('/{slug}/remove', name: 'app_task_remove')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function remove(Request $request, EntityManagerInterface $entityManager, $slug): Response |
|
|
|
{ |
|
|
|
$repository = $entityManager->getRepository(Task::class); |
|
|
@ -281,6 +286,7 @@ class TaskController extends AbstractController |
|
|
|
|
|
|
|
// Commence une tâche
|
|
|
|
#[Route('/{slug}/start', name: 'app_task_start')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function start(WorkflowInterface $taskLifecycleStateMachine, EntityManagerInterface $entityManager, $slug): Response |
|
|
|
{ |
|
|
|
return $this->transition($taskLifecycleStateMachine, $entityManager, $slug, Task::TRANSITION_START); |
|
|
@ -288,6 +294,7 @@ class TaskController extends AbstractController |
|
|
|
|
|
|
|
// Termine une tâche
|
|
|
|
#[Route('/{slug}/finish', name: 'app_task_finish')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function finish(WorkflowInterface $taskLifecycleStateMachine, EntityManagerInterface $entityManager, $slug): Response |
|
|
|
{ |
|
|
|
return $this->transition($taskLifecycleStateMachine, $entityManager, $slug, Task::TRANSITION_FINISH); |
|
|
@ -295,6 +302,7 @@ class TaskController extends AbstractController |
|
|
|
|
|
|
|
// Abandonne une tâche
|
|
|
|
#[Route('/{slug}/cancel', name: 'app_task_cancel')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function cancel(WorkflowInterface $taskLifecycleStateMachine, EntityManagerInterface $entityManager, $slug): Response |
|
|
|
{ |
|
|
|
return $this->transition($taskLifecycleStateMachine, $entityManager, $slug, Task::TRANSITION_CANCEL); |
|
|
@ -302,6 +310,7 @@ class TaskController extends AbstractController |
|
|
|
|
|
|
|
// Recommence une tâche
|
|
|
|
#[Route('/{slug}/reset', name: 'app_task_reset')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function reset(WorkflowInterface $taskLifecycleStateMachine, EntityManagerInterface $entityManager, $slug): Response |
|
|
|
{ |
|
|
|
return $this->transition($taskLifecycleStateMachine, $entityManager, $slug, Task::TRANSITION_RESET); |
|
|
@ -309,6 +318,7 @@ class TaskController extends AbstractController |
|
|
|
|
|
|
|
// Renvoie le geojson associé à une tâche
|
|
|
|
#[Route('/download/{slug}.geojson', name: 'app_task_geojson')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function geojson(Request $request, EntityManagerInterface $entityManager, $slug): Response |
|
|
|
{ |
|
|
|
$repository = $entityManager->getRepository(Task::class); |
|
|
@ -340,6 +350,7 @@ class TaskController extends AbstractController |
|
|
|
|
|
|
|
// Renvoie le gpx associé ã une tâche (concrètement il s’agit juste du geojson converti automqtiquement)
|
|
|
|
#[Route('/download/{slug}.gpx', name: 'app_task_gpx')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function gpx(Request $request, EntityManagerInterface $entityManager, $slug): Response |
|
|
|
{ |
|
|
|
$repository = $entityManager->getRepository(Task::class); |
|
|
@ -378,6 +389,7 @@ class TaskController extends AbstractController |
|
|
|
|
|
|
|
// Renvoie le XML OSM associé à la tâche
|
|
|
|
#[Route('/download/{slug}.osm', name: 'app_task_osm')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function osm(Request $request, EntityManagerInterface $entityManager, $slug): Response |
|
|
|
{ |
|
|
|
$repository = $entityManager->getRepository(Task::class); |
|
|
@ -411,6 +423,7 @@ class TaskController extends AbstractController |
|
|
|
// Renvoie la liste des tâches du projet sous forme de CSV (ce qui devrait
|
|
|
|
// corresponddre à ce que l’on a pu importer)
|
|
|
|
#[Route('/download/{slug}.csv', name: 'app_task_csv')]
|
|
|
|
#[IsGranted('ROLE_USER')]
|
|
|
|
public function csv(Request $request, EntityManagerInterface $entityManager, $slug): Response |
|
|
|
{ |
|
|
|
$repository = $entityManager->getRepository(Project::class); |
|
|
|