| 
					
				 | 
			
			
				@@ -0,0 +1,104 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<?php 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+namespace AppBundle\Controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use AppBundle\Entity\Genre; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use AppBundle\Form\GenreType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use Symfony\Component\Routing\Annotation\Route; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use Symfony\Component\HttpFoundation\Request; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class GenreController extends Controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @Route("/admin/genre/", name="genre_liste") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function indexAction() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $em = $this->getDoctrine()->getManager(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $repo = $em->getRepository('AppBundle:Genre'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $genres = $repo->findAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $this->render('@App/genre/liste.html.twig', array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'genres'  => $genres 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        )); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @Route("/admin/genre/ajouter", name="genre_ajouter") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function ajouterAction(Request $request) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$genre = new Genre(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$form = $this->createForm(GenreType::class, $genre); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$form->handleRequest($request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ($form->isSubmitted() && $form->isValid()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$em = $this->getDoctrine()->getManager(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$em->persist($genre); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$em->flush(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$this->addFlash('success', 'Le genre a été ajouté'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return $this->redirectToRoute('genre_liste'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return $this->render('@App/genre/ajouter.html.twig', array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			'form'	=>	$form->createView(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @Route("/admin/genre/modifier/{id}", name="genre_modifier") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function modifierAction(Request $request, Genre $genre) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$form = $this->createForm(GenreType::class, $genre); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$form->handleRequest($request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $em = $this->getDoctrine()->getManager(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $films = $em->getRepository('AppBundle:Film')->findFilmWithGenre(array($genre->getName())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ($form->isSubmitted() && $form->isValid()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$em->flush(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$this->addFlash('success', 'Le genre a été modifié'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return $this->redirectToRoute('genre_liste'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return $this->render('@App/genre/modifier.html.twig', array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			'form'	=> $form->createView(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'genre'   =>  $genre, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'films' => $films 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @Route("/admin/genre/supprimer/{id}", name="genre_supprimer") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @Security("has_role('ROLE_ADMIN')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function supprimerAction(Request $request, Genre $genre) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $form = $this->get('form.factory')->create(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $form->handleRequest($request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($form->isSubmitted() && $form->isValid()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $em = $this->getDoctrine()->getManager(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $films = $em->getRepository('AppBundle:Film')->findFilmWithGenre(array($genre->getName())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            foreach ($films as $film) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $film->removeGenre($genre); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $em->remove($genre); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $em->flush(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $this->addFlash('success', 'Le genre '.$genre->getName().' a bien été supprimé.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return $this->redirectToRoute('genre_liste'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return $this->render('@App/genre/supprimer.html.twig', array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			'genre'  =>  $genre, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'form'  =>  $form->createView() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |