<?php
namespace App\Controller;
use App\Entity\ChefsEquipes;
use App\Entity\ChefsProjets;
use App\Entity\DirecteursProfesseurs;
use App\Entity\Doctorants;
use App\Entity\MaitresConferences;
use App\Entity\Membre;
use App\Entity\PresentationLabo;
use App\Entity\Professeurs;
use App\Entity\Publications;
use App\Form\ChefsEquipesType;
use App\Form\ChefsProjetsType;
use App\Form\DirecteursProfesseursType;
use App\Form\DoctorantsType;
use App\Form\MaitresConferencesType;
use App\Form\PresentationLaboType;
use App\Form\ProfesseursType;
use App\Repository\ChefsEquipesRepository;
use App\Repository\ChefsProjetsRepository;
use App\Repository\DirecteursProfesseursRepository;
use App\Repository\DoctorantsRepository;
use App\Repository\MaitresConferencesRepository;
use App\Repository\MembreRepository;
use App\Repository\PresentationLaboRepository;
use App\Repository\ProfesseursRepository;
use App\Repository\PublicationsRepository;
use App\Repository\TitlesMembersRepository;
use App\Service\UtilsService;
use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Process\Process;
use Symfony\Component\Routing\Annotation\Route;
use App\Service\ScholarService;
class AproposController extends AbstractController
{
private $utilsService;
private $scholarService;
public function __construct(UtilsService $utilsService,ScholarService $scholarService)
{
$this->utilsService = $utilsService;
$this->scholarService = $scholarService;
}
/**
* @Route("/show", name="labo_a_propos")
*/
public function showOld(PresentationLaboRepository $repo, ProfesseursRepository $repo1, MaitresConferencesRepository $repo2, DoctorantsRepository $repo3, DirecteursProfesseursRepository $repo4, ChefsProjetsRepository $repo5, ChefsEquipesRepository $repo6): Response
{
$presentations = $repo->findBy(["isDeleted" => 0], ['id' => 'desc']);
$professeurs = $repo1->findBy(["isDeleted" => 0], ['id' => 'desc']);
$maitresConferences = $repo2->findBy(["isDeleted" => 0], ['id' => 'desc']);
$doctorants = $repo3->findBy(["isDeleted" => 0], ['id' => 'desc']);
$directeursProfesseurs = $repo4->findBy(["isDeleted" => 0], ['id' => 'desc']);
$chefsProjets = $repo5->findBy(["isDeleted" => 0], ['id' => 'desc']);
$chefsEquipes = $repo6->findBy(["isDeleted" => 0], ['id' => 'desc']);
return $this->render('apropos/show.html.twig', [
'presentations' => $presentations,
'professeurs' => $professeurs,
'maitresConferences' => $maitresConferences,
'doctorants' => $doctorants,
'directeursProfesseurs' => $directeursProfesseurs,
'chefsProjets' => $chefsProjets,
'chefsEquipes' => $chefsEquipes
]);
}
/**
* @Route("/apropos", name="apropos_show")
*/
public function show(PresentationLaboRepository $repo, TitlesMembersRepository $titlesMembersRepository, MembreRepository $membreRepository): Response
{
$titlesMembers = $titlesMembersRepository->findBy(['is_deleted' => 0], ['id' => 'asc']);
$presentations = $repo->findBy(["isDeleted" => 0], ['id' => 'desc']);
$membre = $membreRepository->findBy(["isDeleted" => 0], ['id' => 'desc']);
// $titlesProf=$titlesMembersRepository->findBy(['titre' => 'Professor'], ['id' => 'desc']);
// $totalProfessors=$membreRepository->findBy(['titlesMembers' => $titlesProf, 'isDeleted' => 0], ['id' => 'desc']);
$totalProfessors = $membreRepository->nbrProfessors();
$totalAssociateProfessors = $membreRepository->nbrAssociateProf();
$totalPHDStudents = $membreRepository->nbrPHDStudents();
$totalProjectManagers = $membreRepository->nbrProjectManagers();
$totalPOSTDOCS = $membreRepository->nbrPOSTDOC();
return $this->render('apropos/apropos.html.twig', [
'presentations' => $presentations,
'titlesMembers' => $titlesMembers,
'members' => $membre,
'totalProfessors' => $totalProfessors[0][1],
'totalAssociateProfessors' => $totalAssociateProfessors[0][1],
'totalOHDStudents' => $totalPHDStudents[1],
'totalProjectManagers' => $totalProjectManagers[1],
'totalPOSTDOCS' => $totalPOSTDOCS[1]
]);
}
/**
* @Route("/members", name="members_show")
*/
public function showMembers(PresentationLaboRepository $repo, TitlesMembersRepository $titlesMembersRepository, MembreRepository $membreRepository, PaginatorInterface $paginator, Request $request): Response
{
$titlesMembers = $titlesMembersRepository->findByNotNull();
$page = $request->query->getInt('page', 1);
$letter = $request->query->get('letter', '');
$members = $membreRepository->findAllMembersWithGroupTitle2();
$totalProfessors = $membreRepository->nbrProfessors();
$totalAssociateProfessors = $membreRepository->nbrAssociateProf();
$totalOHDStudents = $membreRepository->nbrPHDStudents();
$totalProjectManagers = $membreRepository->nbrProjectManagers();
return $this->render('members/members.html.twig', [
'titlesMembers' => $titlesMembers,
'groupedMembers' => $members,
'totalProfessors' => $totalProfessors[0][1],
'totalAssociateProfessors' => $totalAssociateProfessors[0][1],
'totalOHDStudents' => $totalOHDStudents[1],
'totalProjectManagers' => $totalProjectManagers[1],
'virtualTitle' => 'Permanent Research',
'letter' => $letter
]);
}
/**
* @Route("/members/profile/{id}/{prenom}{nom}", name="profile_show", methods={"GET"})
*/
public function showProfile(PaginatorInterface $paginator, publicationsRepository $publicationsRepository, MembreRepository $membreRepository, Request $request, Membre $membre, EntityManagerInterface $manager): Response
{
$scholarId = $membre->getScholarId();
$publications_membre = [];
$data_scholar= [];
$citationsYears= [];
$citationsCounts= [];
if ($scholarId != null) {
$publications_membre = $this->utilsService->fetchPublications(
$scholarId,
$membre,
$membreRepository,
$this->scholarService
);
//$data_scholar['citations_per_year']=[];
$data_scholar = $this->scholarService->fetchScholarData($scholarId);
if($data_scholar['citations_per_year']){
$citationsYears = array_keys($data_scholar['citations_per_year']);
$citationsCounts = array_values($data_scholar['citations_per_year']);
}
}
usort($publications_membre, function($a, $b) {
return $b['year'] <=> $a['year'];
});
$pagination = $paginator->paginate(
$publications_membre,
$request->query->getInt('page', 1),
5
);
return $this->render('members/profile.html.twig', [
'profile' => $membre,
'publicationsMembre' => $publications_membre,
'pagination' => $pagination,
'h_index'=>$data_scholar['h_index']?? 0,
'total_citations'=>$data_scholar['total_citations']?? 0,
'citationsYears' => $citationsYears,
'citationsCounts' => $citationsCounts,
'publications' => $data_scholar['publications']?? [],
]);
}
// Présentation
/**
* @Route("/dashboard/apropos/presentation/", name="presentation_index", methods={"GET"})
* @Security("is_granted('ROLE_ADMINISTRATEUR')")
*/
public function indexPresentation(PresentationLaboRepository $presentationRepository, Request $request): Response
{
$present = $presentationRepository->findBy(["isDeleted" => 0]);
$isEmpty = empty($present);
return $this->render('apropos/presentation/index.html.twig', ['title' => 'Présentation',
'present' => $present,
'isEmpty' => $isEmpty,
]);
}
/**
* @Route("/dashboard/apropos/presentation/new", name="presentation_new", methods={"GET","POST"})
* @Security("is_granted('ROLE_ADMINISTRATEUR')")
*/
public function newPresentation(Request $request, EntityManagerInterface $manager): Response
{
$present = new PresentationLabo();
$form = $this->createForm(PresentationLaboType::class, $present);
$form->handleRequest($request);
if ($request->isMethod('post')) {
$presentation = $request->request->get("presentation");
$present->setPresentation($presentation);
$objectifs = $request->request->get("objectifs");
$present->setObjectifs($objectifs);
$valeurs = $request->request->get("valeurs");
$present->setValeurs($valeurs);
$manager->persist($present);
$manager->flush();
return $this->redirectToRoute('presentation_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/presentation/new.html.twig', [
'title' => 'Partner',
'present' => $present,
'form' => $form->createView(),
]);
}
/**
* @Route("/dashboard/apropos/presentation/{id}/edit", name="presentation_edit", methods={"GET","POST"})
* @Security("is_granted('ROLE_ADMINISTRATEUR')")
*/
public function editPresentation(Request $request, PresentationLabo $present, EntityManagerInterface $manager): Response
{
$form = $this->createForm(PresentationLaboType::class, $present);
$form->handleRequest($request);
if ($request->isMethod('post')) {
$presentation = $request->request->get("presentation");
$present->setPresentation($presentation);
$objectifs = $request->request->get("objectifs");
$present->setObjectifs($objectifs);
$valeurs = $request->request->get("valeurs");
$present->setValeurs($valeurs);
$manager->flush();
return $this->redirectToRoute('presentation_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/presentation/edit.html.twig', [
'form' => $form->createView(),
"title" => "Prsentation",
'present' => $present,
]);
}
/**
* @Route("/dashboard/apropos/{id}", name="presentation_delete", methods={"POST"})
* @Security("is_granted('ROLE_ADMINISTRATEUR')")
*/
public function deletePresentation(Request $request, PresentationLabo $present, EntityManagerInterface $manager): Response
{
if ($this->isCsrfTokenValid('delete' . $present->getId(), $request->request->get('_token'))) {
$present->setIsDeleted(1);
$manager->flush();
}
return $this->redirectToRoute('presentation_index', [], Response::HTTP_SEE_OTHER);
}
// Professeurs
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/professeur/", name="professeur_index", methods={"GET"})
*/
public function indexProfesseur(ProfesseursRepository $professeurRepository, PaginatorInterface $paginator, Request $request): Response
{
$professeurs = $professeurRepository->findBy(["isDeleted" => 0], ['id' => 'desc']);
$pagination = $paginator->paginate(
$professeurs, /* query NOT result */
$request->query->getInt('page', 1), /*page number*/
5 /*limit per page*/
);
return $this->render('apropos/professeurs/index.html.twig', ['title' => 'Professeurs',
'professeurs' => $pagination,
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/professeur/new", name="professeur_new", methods={"GET","POST"})
*/
public function newProfesseur(Request $request, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$professeur = new Professeurs();
$form = $this->createForm(ProfesseursType::class, $professeur);
$form->handleRequest($request);
if ($request->isMethod('post')) {
$image = $request->files->get('image');
$image_name = "Professeur" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$professeur->setimage($image_name);
$nom = $request->request->get("nom");
$professeur->setNom($nom);
$titre = $request->request->get("titre");
$professeur->setTitre($titre);
$manager->persist($professeur);
$manager->flush();
return $this->redirectToRoute('professeur_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/professeurs/new.html.twig', [
'title' => 'Professeurs',
'professeur' => $professeur,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/professeur/{id}/edit", name="professeur_edit", methods={"GET","POST"})
*/
public function editProfesseur(Request $request, Professeurs $professeur, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$form = $this->createForm(ProfesseursType::class, $professeur);
$form->handleRequest($request);
if ($request->isMethod('post')) {
if ($request->files->get('image') != null) {
$image = $request->files->get('image');
$image_name = "Professeur" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$professeur->setImage($image_name);
}
$nom = $request->request->get("nom");
$professeur->setNom($nom);
$titre = $request->request->get("titre");
$professeur->setTitre($titre);
$manager->flush();
return $this->redirectToRoute('professeur_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/professeurs/edit.html.twig', [
"title" => "Professeurs",
'professeur' => $professeur,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/professeur/{id}", name="professeur_delete", methods={"POST"})
*/
public function deleteProfesseur(Request $request, Professeurs $professeur, EntityManagerInterface $manager): Response
{
if ($this->isCsrfTokenValid('delete' . $professeur->getId(), $request->request->get('_token'))) {
$professeur->setIsDeleted(1);
$manager->flush();
}
return $this->redirectToRoute('professeur_index', [], Response::HTTP_SEE_OTHER);
}
// Maitres de conferences
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/maitreConference/", name="maitreConference_index", methods={"GET"})
*/
public function indexMaitreConference(MaitresConferencesRepository $maitreConferenceRepository, PaginatorInterface $paginator, Request $request): Response
{
$maitresConferences = $maitreConferenceRepository->findBy(["isDeleted" => 0], ['id' => 'desc']);
$pagination = $paginator->paginate(
$maitresConferences, /* query NOT result */
$request->query->getInt('page', 1), /*page number*/
5 /*limit per page*/
);
return $this->render('apropos/maitres_conferences/index.html.twig', ['title' => 'MaitresConferences',
'maitresConferences' => $pagination,
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/maitreConference/new", name="maitreConference_new", methods={"GET","POST"})
*/
public function newMaitreConference(Request $request, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$maitreConference = new MaitresConferences();
$form = $this->createForm(MaitresConferencesType::class, $maitreConference);
$form->handleRequest($request);
if ($request->isMethod('post')) {
$image = $request->files->get('image');
$image_name = "maitreConference" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$maitreConference->setimage($image_name);
$nom = $request->request->get("nom");
$maitreConference->setNom($nom);
$titre = $request->request->get("titre");
$maitreConference->setTitre($titre);
$manager->persist($maitreConference);
$manager->flush();
return $this->redirectToRoute('maitreConference_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/maitres_conferences/new.html.twig', [
'title' => 'MaitresConferences',
'maitreConference' => $maitreConference,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/maitreConference/{id}/edit", name="maitreConference_edit", methods={"GET","POST"})
*/
public function editMaitreConference(Request $request, MaitresConferences $maitreConference, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$form = $this->createForm(MaitresConferencesType::class, $maitreConference);
$form->handleRequest($request);
if ($request->isMethod('post')) {
if ($request->files->get('image') != null) {
$image = $request->files->get('image');
$image_name = "maitreConference" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$maitreConference->setImage($image_name);
}
$nom = $request->request->get("nom");
$maitreConference->setNom($nom);
$titre = $request->request->get("titre");
$maitreConference->setTitre($titre);
$manager->flush();
return $this->redirectToRoute('maitreConference_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/maitres_conferences/edit.html.twig', [
"title" => "MaitresConferences",
'maitreConference' => $maitreConference,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/maitreConference/{id}", name="maitreConference_delete", methods={"POST"})
*/
public function deletemaitreConference(Request $request, MaitresConferences $maitreConference, EntityManagerInterface $manager): Response
{
if ($this->isCsrfTokenValid('delete' . $maitreConference->getId(), $request->request->get('_token'))) {
$maitreConference->setIsDeleted(1);
$manager->flush();
}
return $this->redirectToRoute('maitreConference_index', [], Response::HTTP_SEE_OTHER);
}
// Representants des doctorants
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/doctorant/", name="doctorant_index", methods={"GET"})
*/
public function indexDoctorant(DoctorantsRepository $doctorantRepository, PaginatorInterface $paginator, Request $request): Response
{
$doctorants = $doctorantRepository->findBy(["isDeleted" => 0], ['id' => 'desc']);
$pagination = $paginator->paginate(
$doctorants, /* query NOT result */
$request->query->getInt('page', 1), /*page number*/
5 /*limit per page*/
);
return $this->render('apropos/doctorants/index.html.twig', ['title' => 'Doctorants',
'doctorants' => $pagination,
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/doctorant/new", name="doctorant_new", methods={"GET","POST"})
*/
public function newdoctorant(Request $request, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$doctorant = new Doctorants();
$form = $this->createForm(DoctorantsType::class, $doctorant);
$form->handleRequest($request);
if ($request->isMethod('post')) {
$image = $request->files->get('image');
$image_name = "doctorant" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$doctorant->setimage($image_name);
$nom = $request->request->get("nom");
$doctorant->setNom($nom);
$titre = $request->request->get("titre");
$doctorant->setTitre($titre);
$manager->persist($doctorant);
$manager->flush();
return $this->redirectToRoute('doctorant_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/doctorants/new.html.twig', [
'title' => 'doctorants',
'doctorant' => $doctorant,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/doctorant/{id}/edit", name="doctorant_edit", methods={"GET","POST"})
*/
public function editdoctorant(Request $request, Doctorants $doctorant, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$form = $this->createForm(DoctorantsType::class, $doctorant);
$form->handleRequest($request);
if ($request->isMethod('post')) {
if ($request->files->get('image') != null) {
$image = $request->files->get('image');
$image_name = "doctorant" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$doctorant->setImage($image_name);
}
$nom = $request->request->get("nom");
$doctorant->setNom($nom);
$titre = $request->request->get("titre");
$doctorant->setTitre($titre);
$manager->flush();
return $this->redirectToRoute('doctorant_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/doctorants/edit.html.twig', [
"title" => "doctorants",
'doctorant' => $doctorant,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/doctorant/{id}", name="doctorant_delete", methods={"POST"})
*/
public function deletedoctorant(Request $request, Doctorants $doctorant, EntityManagerInterface $manager): Response
{
if ($this->isCsrfTokenValid('delete' . $doctorant->getId(), $request->request->get('_token'))) {
$doctorant->setIsDeleted(1);
$manager->flush();
}
return $this->redirectToRoute('doctorant_index', [], Response::HTTP_SEE_OTHER);
}
// Les directeurs professeurs
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/directeurProfesseur/", name="directeurProfesseur_index", methods={"GET"})
*/
public function indexDirecteurProfesseur(DirecteursProfesseursRepository $directeurProfesseurRepository, PaginatorInterface $paginator, Request $request): Response
{
$directeursProfesseurs = $directeurProfesseurRepository->findBy(["isDeleted" => 0], ['id' => 'desc']);
$pagination = $paginator->paginate(
$directeursProfesseurs, /* query NOT result */
$request->query->getInt('page', 1), /*page number*/
5 /*limit per page*/
);
return $this->render('apropos/directeurs_professeurs/index.html.twig', ['title' => 'Directeurs professeurs',
'directeursProfesseurs' => $pagination,
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/directeurProfesseur/new", name="directeurProfesseur_new", methods={"GET","POST"})
*/
public function newDirecteurProfesseur(Request $request, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$directeurProfesseur = new DirecteursProfesseurs();
$form = $this->createForm(DirecteursProfesseursType::class, $directeurProfesseur);
$form->handleRequest($request);
if ($request->isMethod('post')) {
$image = $request->files->get('image');
$image_name = "directeurProfesseur" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$directeurProfesseur->setimage($image_name);
$nom = $request->request->get("nom");
$directeurProfesseur->setNom($nom);
$titre = $request->request->get("titre");
$directeurProfesseur->setTitre($titre);
$manager->persist($directeurProfesseur);
$manager->flush();
return $this->redirectToRoute('directeurProfesseur_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/directeurs_professeurs/new.html.twig', [
'title' => 'Directeur professeurs',
'directeurProfesseur' => $directeurProfesseur,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/directeurProfesseur/{id}/edit", name="directeurProfesseur_edit", methods={"GET","POST"})
*/
public function editDirecteurProfesseur(Request $request, DirecteursProfesseurs $directeurProfesseur, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$form = $this->createForm(DirecteursProfesseursType::class, $directeurProfesseur);
$form->handleRequest($request);
if ($request->isMethod('post')) {
if ($request->files->get('image') != null) {
$image = $request->files->get('image');
$image_name = "directeurProfesseur" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$directeurProfesseur->setImage($image_name);
}
$nom = $request->request->get("nom");
$directeurProfesseur->setNom($nom);
$titre = $request->request->get("titre");
$directeurProfesseur->setTitre($titre);
$manager->flush();
return $this->redirectToRoute('directeurProfesseur_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/directeurs_professeurs/edit.html.twig', [
"title" => "Directeur professeurs",
'directeurProfesseur' => $directeurProfesseur,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/directeurProfesseur/{id}", name="directeurProfesseur_delete", methods={"POST"})
*/
public function deleteDirecteurProfesseur(Request $request, DirecteursProfesseurs $directeurProfesseur, EntityManagerInterface $manager): Response
{
if ($this->isCsrfTokenValid('delete' . $directeurProfesseur->getId(), $request->request->get('_token'))) {
$directeurProfesseur->setIsDeleted(1);
$manager->flush();
}
return $this->redirectToRoute('directeurProfesseur_index', [], Response::HTTP_SEE_OTHER);
}
// Chefs de projets
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/chefProjet/", name="chefProjet_index", methods={"GET"})
*/
public function indexChefProjet(ChefsProjetsRepository $chefProjetRepository, PaginatorInterface $paginator, Request $request): Response
{
$chefsProjets = $chefProjetRepository->findBy(["isDeleted" => 0], ['id' => 'desc']);
$pagination = $paginator->paginate(
$chefsProjets, /* query NOT result */
$request->query->getInt('page', 1), /*page number*/
5 /*limit per page*/
);
return $this->render('apropos/chefs_projets/index.html.twig', ['title' => 'Chefs de projets',
'chefsProjets' => $pagination,
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/chefProjet/new", name="chefProjet_new", methods={"GET","POST"})
*/
public function newChefProjet(Request $request, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$chefProjet = new ChefsProjets();
$form = $this->createForm(ChefsProjetsType::class, $chefProjet);
$form->handleRequest($request);
if ($request->isMethod('post')) {
$image = $request->files->get('image');
$image_name = "chefProjet" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$chefProjet->setimage($image_name);
$nom = $request->request->get("nom");
$chefProjet->setNom($nom);
$titre = $request->request->get("titre");
$chefProjet->setTitre($titre);
$manager->persist($chefProjet);
$manager->flush();
return $this->redirectToRoute('chefProjet_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/chefs_projets/new.html.twig', [
'title' => 'Chefs de projets',
'chefProjet' => $chefProjet,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/chefProjet/{id}/edit", name="chefProjet_edit", methods={"GET","POST"})
*/
public function editChefProjet(Request $request, ChefsProjets $chefProjet, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$form = $this->createForm(ChefsProjetsType::class, $chefProjet);
$form->handleRequest($request);
if ($request->isMethod('post')) {
if ($request->files->get('image') != null) {
$image = $request->files->get('image');
$image_name = "chefProjet" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$chefProjet->setImage($image_name);
}
$nom = $request->request->get("nom");
$chefProjet->setNom($nom);
$titre = $request->request->get("titre");
$chefProjet->setTitre($titre);
$manager->flush();
return $this->redirectToRoute('chefProjet_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/chefs_projets/edit.html.twig', [
"title" => "Chefs de projets",
'chefProjet' => $chefProjet,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/chefProjet/{id}", name="chefProjet_delete", methods={"POST"})
*/
public function deleteChefProjet(Request $request, ChefsProjets $chefProjet, EntityManagerInterface $manager): Response
{
if ($this->isCsrfTokenValid('delete' . $chefProjet->getId(), $request->request->get('_token'))) {
$chefProjet->setIsDeleted(1);
$manager->flush();
}
return $this->redirectToRoute('chefProjet_index', [], Response::HTTP_SEE_OTHER);
}
// chefs d'equipes
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/chefEquipe/", name="chefEquipe_index", methods={"GET"})
*/
public function indexChefEquipe(ChefsEquipesRepository $chefEquipeRepository, PaginatorInterface $paginator, Request $request): Response
{
$chefsEquipes = $chefEquipeRepository->findBy(["isDeleted" => 0], ['id' => 'desc']);
$pagination = $paginator->paginate(
$chefsEquipes, /* query NOT result */
$request->query->getInt('page', 1), /*page number*/
5 /*limit per page*/
);
return $this->render('apropos/chefs_equipes/index.html.twig', ['title' => 'chefs equipes',
'chefsEquipes' => $pagination,
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/chefEquipe/new", name="chefEquipe_new", methods={"GET","POST"})
*/
public function newChefEquipe(Request $request, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$chefEquipe = new ChefsEquipes();
$form = $this->createForm(ChefsEquipesType::class, $chefEquipe);
$form->handleRequest($request);
if ($request->isMethod('post')) {
$image = $request->files->get('image');
$image_name = "chefEquipe" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$chefEquipe->setimage($image_name);
$nom = $request->request->get("nom");
$chefEquipe->setNom($nom);
$titre = $request->request->get("titre");
$chefEquipe->setTitre($titre);
$manager->persist($chefEquipe);
$manager->flush();
return $this->redirectToRoute('chefEquipe_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/chefs_equipes/new.html.twig', [
'title' => 'chefs Equipes',
'chefEquipe' => $chefEquipe,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/chefEquipe/{id}/edit", name="chefEquipe_edit", methods={"GET","POST"})
*/
public function editChefEquipe(Request $request, ChefsEquipes $chefEquipe, EntityManagerInterface $manager): Response
{
$destination = $this->getParameter('kernel.project_dir') . '/public/admin/uploads';
$form = $this->createForm(ChefsEquipesType::class, $chefEquipe);
$form->handleRequest($request);
if ($request->isMethod('post')) {
if ($request->files->get('image') != null) {
$image = $request->files->get('image');
$image_name = "chefEquipe" . '-' . uniqid() . '.' . $image->guessExtension();
$image->move(
$destination,
$image_name
);
$chefEquipe->setImage($image_name);
}
$nom = $request->request->get("nom");
$chefEquipe->setNom($nom);
$titre = $request->request->get("titre");
$chefEquipe->setTitre($titre);
$manager->flush();
return $this->redirectToRoute('chefEquipe_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('apropos/chefs_equipes/edit.html.twig', [
"title" => "chefs Equipes",
'chefEquipe' => $chefEquipe,
'form' => $form->createView(),
]);
}
/**
* @IsGranted("ROLE_ADMINISTRATEUR")
* @Route("/dashboard/apropos/chefEquipe/{id}", name="chefEquipe_delete", methods={"POST"})
*/
public function deleteChefEquipe(Request $request, ChefsEquipes $chefEquipe, EntityManagerInterface $manager): Response
{
if ($this->isCsrfTokenValid('delete' . $chefEquipe->getId(), $request->request->get('_token'))) {
$chefEquipe->setIsDeleted(1);
$manager->flush();
}
return $this->redirectToRoute('chefEquipe_index', [], Response::HTTP_SEE_OTHER);
}
}