Ajout inscription et désinscription
This commit is contained in:
parent
022156c06a
commit
6121abb241
|
@ -6,6 +6,7 @@ use App\Entity\Atelier;
|
||||||
use App\Form\AtelierType;
|
use App\Form\AtelierType;
|
||||||
use App\Repository\AtelierRepository;
|
use App\Repository\AtelierRepository;
|
||||||
use App\Services\MarkdownAtelier;
|
use App\Services\MarkdownAtelier;
|
||||||
|
use Doctrine\Persistence\ManagerRegistry;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
@ -59,6 +60,7 @@ class AtelierController extends AbstractController
|
||||||
{
|
{
|
||||||
return $this->render('atelier/show.html.twig', [
|
return $this->render('atelier/show.html.twig', [
|
||||||
'atelier' => $markdownAtelier->parse($atelier),
|
'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);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,19 +21,28 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Email instructeur</th>
|
<th>Email instructeur</th>
|
||||||
<td>{{ atelier.instructeur.email}}</td>
|
<td>{{ atelier.instructeur.email }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="d-flex flex-row">
|
<div class="d-flex flex-row">
|
||||||
{% if app.user and app.user == atelier.instructeur %}
|
{% 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 %}
|
{% endif %}
|
||||||
<a class="btn btn-outline-primary m-2" href="{{ path('app_atelier_index') }}">Retour à la liste</a>
|
<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 %}
|
{% if app.user and app.user == atelier.instructeur %}
|
||||||
{{ include('atelier/_delete_form.html.twig') }}
|
{{ include('atelier/_delete_form.html.twig') }}
|
||||||
{% endif %}
|
{% 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>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue