diff --git a/src/Controller/DegreeController.php b/src/Controller/DegreeController.php index d7d54e0..d4e2469 100644 --- a/src/Controller/DegreeController.php +++ b/src/Controller/DegreeController.php @@ -3,6 +3,7 @@ namespace App\Controller; use App\Entity\Degree; +use App\Entity\InternDegree; use App\Form\DegreeType; use App\Repository\DegreeRepository; use Doctrine\ORM\EntityManagerInterface; diff --git a/src/Controller/InternController.php b/src/Controller/InternController.php index f1de7d0..0ada2cc 100644 --- a/src/Controller/InternController.php +++ b/src/Controller/InternController.php @@ -2,7 +2,9 @@ namespace App\Controller; +use App\Entity\Degree; use App\Entity\Intern; +use App\Entity\InternDegree; use App\Form\InternType; use App\Repository\InternRepository; use Doctrine\ORM\EntityManagerInterface; @@ -58,4 +60,52 @@ final class InternController extends AbstractController return $this->redirectToRoute('app_intern_index', [], Response::HTTP_SEE_OTHER); } + + #[Route('/degrees/add', name:'app_intern_add_degrees', methods:['POST'])] + public function addDegrees(Request $request, EntityManagerInterface $entityManager): Response + { + $intern = $this->getUser(); + + if (!$intern instanceof Intern) { + throw $this->createAccessDeniedException("Seuls les stagiaires peuvent sélectionner des diplômes."); + } + + $selectedDegreeIds = $request->request->all('selected_degrees'); + + if ($selectedDegreeIds == []) { + $this->addFlash('error', "Aucune sélection valide n'a été effectuée."); + return $this->redirectToRoute('app_degree_index'); + } + + $degreeRepository = $entityManager->getRepository(Degree::class); + $internDegreeRepository = $entityManager->getRepository(InternDegree::class); + + foreach ($selectedDegreeIds as $degreeId) { + $degree = $degreeRepository->find($degreeId); + + if (!$degree) { + continue; + } + + $existingInternDegree = $internDegreeRepository->findOneBy([ + 'intern' => $intern, + 'degree' => $degree + ]); + + if (!$existingInternDegree) { + $internDegree = new InternDegree(); + $internDegree->setIntern($intern); + $internDegree->setDegree($degree); + $internDegree->setGraduationDate(new \DateTime()); + + $entityManager->persist($internDegree); + } + } + + $entityManager->flush(); + + $this->addFlash('success', 'Les diplômes ont été ajoutés avec succès.'); + + return $this->redirectToRoute('app_profile'); + } } diff --git a/src/Controller/ProfileController.php b/src/Controller/ProfileController.php index 5781c19..d25e351 100644 --- a/src/Controller/ProfileController.php +++ b/src/Controller/ProfileController.php @@ -15,10 +15,8 @@ class ProfileController extends AbstractController #[Route('/profile', name: 'app_profile')] public function profile(): Response { - // Charger l'utilisateur connecté $user = $this->getUser(); - // Vérifiez les rôles si nécessaire if (!$user) { throw $this->createAccessDeniedException('Vous devez être connecté pour accéder à cette page.'); } @@ -45,4 +43,12 @@ class ProfileController extends AbstractController 'form' => $form, ]); } + + #[Route('profile/pickDegree', name: 'app_profile_pickDegree', methods: ['GET'])] + public function pickDegree(UserApp $userApp): Response + { + return $this->render('degree/index.html.twig', [ + 'user_app' => $userApp, + ]); + } } \ No newline at end of file diff --git a/templates/degree/index.html.twig b/templates/degree/index.html.twig index 670e9c5..3c63338 100644 --- a/templates/degree/index.html.twig +++ b/templates/degree/index.html.twig @@ -6,52 +6,55 @@
ID | -Label | -Actions | -|||
---|---|---|---|---|---|
{{ degree.id }} | -{{ degree.label }} | -- - - Voir - + {% if 'ROLE_INTERN' in app.user.roles %} + - | + +
ID | +Label | +Actions |
---|
Connectez les talents aux opportunités : votre clé vers le succès professionnel
Vous êtes employé(e) chez {{ app.user.company }}.
+Nom : {{ app.user.firstName }}
+Prénom : {{ app.user.lastName }}
Adresse : {{ app.user.address }}
Téléphone : {{ app.user.tel }}
Email : {{ app.user.mail }}
+ +