Ajout inscription et désinscription

This commit is contained in:
Zakarya BENJABALLAH 2023-02-09 10:57:57 +01:00
parent 022156c06a
commit 6121abb241
2 changed files with 35 additions and 5 deletions

View File

@ -6,6 +6,7 @@ use App\Entity\Atelier;
use App\Form\AtelierType;
use App\Repository\AtelierRepository;
use App\Services\MarkdownAtelier;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
@ -59,6 +60,7 @@ class AtelierController extends AbstractController
{
return $this->render('atelier/show.html.twig', [
'atelier' => $markdownAtelier->parse($atelier),
'inscrit' => $atelier->getEleves()->contains($this->getUser()),
]);
}
@ -99,4 +101,23 @@ class AtelierController extends AbstractController
return $this->redirectToRoute('app_atelier_index', [], Response::HTTP_SEE_OTHER);
}
#[IsGranted('ROLE_APPRENTI')]
#[Route('/{id}/inscrire', name: 'app_atelier_inscription', methods: ['POST'])]
public function inscription(Request $request, Atelier $atelier, ManagerRegistry $doctrine): Response
{
$entityManager = $doctrine->getManager();
$atelier->addEleve($this->getUser());
$entityManager->flush();
return $this->redirectToRoute('app_atelier_show', ["id"=>$atelier->getId()], Response::HTTP_SEE_OTHER);
}
#[IsGranted('ROLE_APPRENTI')]
#[Route('/{id}/desinscrire', name: 'app_atelier_desinscrire', methods: ['POST'])]
public function desinscrire(Request $request, Atelier $atelier, ManagerRegistry $doctrine): Response
{
$entityManager = $doctrine->getManager();
$atelier->removeEleve($this->getUser());
$entityManager->flush();
return $this->redirectToRoute('app_atelier_show', ["id"=>$atelier->getId()], Response::HTTP_SEE_OTHER);
}
}

View File

@ -21,19 +21,28 @@
</tr>
<tr>
<th>Email instructeur</th>
<td>{{ atelier.instructeur.email}}</td>
<td>{{ atelier.instructeur.email }}</td>
</tr>
</tbody>
</table>
<div class="d-flex flex-row">
{% if app.user and app.user == atelier.instructeur %}
<a class="btn btn-outline-primary m-2" href="{{ path('app_atelier_edit', {'id': atelier.id}) }}">Modifier</a>
<a class="btn btn-outline-primary m-2"
href="{{ path('app_atelier_edit', {'id': atelier.id}) }}">Modifier</a>
{% endif %}
<a class="btn btn-outline-primary m-2" href="{{ path('app_atelier_index') }}">Retour à la liste</a>
{% if app.user and app.user == atelier.instructeur %}
{{ include('atelier/_delete_form.html.twig') }}
{% endif %}
{% if not inscrit %}
<form method="post" action="{{ path('app_atelier_inscription', {'id': atelier.id}) }}">
<button class="btn btn-outline-success m-2">S'inscrire</button>
</form>
{% else %}
<form method="post" action="{{ path('app_atelier_desinscrire', {'id': atelier.id}) }}">
<button class="btn btn-outline-danger m-2">Se désinscrire</button>
</form>
{% endif %}
</div>
{% endblock %}