Ajout de la possibilitée de noter une formation

This commit is contained in:
Aymeric SERRA 2023-02-09 19:07:42 +01:00
parent e49689338c
commit cca5388085
Signed by: oupson
GPG Key ID: 3BD88615552EFCB7
3 changed files with 58 additions and 0 deletions

View File

@ -4,6 +4,7 @@ namespace App\Controller;
use App\Entity\Atelier;
use App\Entity\FormationUser;
use App\Form\NoteType;
use App\Repository\AtelierRepository;
use App\Repository\FormationUserRepository;
use App\Services\MarkdownAtelier;
@ -52,6 +53,30 @@ class ApprentiController extends AbstractController
return $this->redirectToRoute('app_atelier_show', ["id" => $atelier->getId()], Response::HTTP_SEE_OTHER);
}
#[Route('/atelier/{id}/noter', name: 'app_atelier_noter', methods: ['GET', 'POST'])]
public function noter(Request $request, Atelier $atelier, ManagerRegistry $doctrine, FormationUserRepository $formationUserRepository): Response
{
$form = $this->createForm(NoteType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$f = $formationUserRepository
->findOneBy([
'atelier' => $atelier,
'eleve' => $this->getUser()
])
->setNote($form->get('note')->getData());
$formationUserRepository->save($f, true);
return $this->redirectToRoute('app_atelier_show', ["id" => $atelier->getId()], Response::HTTP_SEE_OTHER);
}
return $this->renderForm('atelier/noter.html.twig', [
'atelier' => $atelier,
'form' => $form,
]);
}
#[Route('/', name: 'app_atelier_inscrit', methods: ['GET'])]
public function index_inscrit(AtelierRepository $atelierRepository, MarkdownAtelier $markdown): Response
{

19
src/Form/NoteType.php Normal file
View File

@ -0,0 +1,19 @@
<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\FormBuilderInterface;
class NoteType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder->add('note', IntegerType::class, [
'attr' => array('min' => 0, 'max' => 5,),
'empty_data' => 0,
'required' => false
]);
}
}

View File

@ -0,0 +1,14 @@
{% extends 'base.html.twig' %}
{% block title %}Modifier l'atelier{% endblock %}
{% block body %}
<h1>Modifier l'atelier</h1>
{{ form_start(form) }}
{{ form_widget(form) }}
<div class="d-flex flex-row">
<button class="btn btn-outline-primary m-2">Enregistrer</button>
</div>
{{ form_end(form) }}
{% endblock %}