Browse Source

Evolution #601: Admin: re-création: Ajout de l'action de regeneration d'un element existant

Sevajol Bastien 12 years ago
parent
commit
2759e20fce

+ 20 - 4
src/Muzich/AdminBundle/Controller/Admin_element/EditController.php View File

@@ -6,15 +6,31 @@ use Admingenerated\MuzichAdminBundle\BaseAdmin_elementController\EditController
6 6
 use Symfony\Component\Form\Form;
7 7
 use Muzich\CoreBundle\Entity\Element;
8 8
 use Muzich\CoreBundle\Managers\ElementManager;
9
+use Symfony\Component\HttpFoundation\RedirectResponse;
9 10
 
10 11
 class EditController extends BaseEditController
11 12
 {
12 13
   
13
-  public function preSave(Form $form, Element $Element)
14
+  protected function getElementContext($pk)
14 15
   {
15
-    //$em = $this->get('doctrine')->getEntityManager();
16
-    //$factory = new ElementManager($Element, $em, $this->container);
17
-    //$factory->proceedFill($Element->getOwner(), false);
16
+    $Element = $this->getObject($pk);
17
+    if (!$Element) {
18
+        throw new NotFoundHttpException("The Muzich\CoreBundle\Entity\Element with id $pk can't be found");
19
+    }
20
+    return $Element;
21
+  }
22
+  
23
+  public function regenerateAction($pk)
24
+  {
25
+    $Element = $this->getElementContext($pk);
26
+    $em = $this->getDoctrine()->getManager();
27
+    $factory = new ElementManager($Element, $em, $this->container);
28
+    $factory->regenerate();
29
+    $em->persist($Element);
30
+    $em->flush();
31
+    
32
+    $this->get('session')->setFlash('success', $this->get('translator')->trans("object.edit.success", array(), 'Admingenerator') );
33
+    return new RedirectResponse($this->generateUrl("Muzich_AdminBundle_Admin_element_list" ));
18 34
   }
19 35
   
20 36
 }

+ 2 - 0
src/Muzich/AdminBundle/Resources/config/Admin_element-generator.yml View File

@@ -21,6 +21,8 @@ builders:
21 21
         new: ~
22 22
       object_actions:
23 23
         show: ~
24
+        regenerate:
25
+          route: Muzich_AdminBundle_Admin_element_regenerate
24 26
         edit: ~
25 27
         delete: ~
26 28
   filters:

+ 7 - 1
src/Muzich/AdminBundle/Resources/config/routing.yml View File

@@ -8,4 +8,10 @@ Muzich_AdminBundle_Admin_user_password_update:
8 8
   pattern:  /Admin_user/{pk}/password/update
9 9
   defaults: { _controller:Muzich\AdminBundle\Controller\Admin_user\EditController::passwordUpdateAction }
10 10
   requirements:
11
-    _method:  POST
11
+    _method:  POST
12
+
13
+Muzich_AdminBundle_Admin_element_regenerate:
14
+  pattern:  /Admin_element/{pk}/regenerate
15
+  defaults: { _controller:Muzich\AdminBundle\Controller\Admin_element\EditController::regenerateAction }
16
+  requirements:
17
+    _method:  GET

+ 7 - 1
src/Muzich/CoreBundle/Managers/ElementManager.php View File

@@ -173,7 +173,13 @@ class ElementManager
173 173
     }
174 174
     
175 175
   }
176
-    
176
+  
177
+  public function regenerate()
178
+  {
179
+    $this->determineType();
180
+    $this->proceedExtraFields();
181
+  }
182
+  
177 183
 }
178 184
 
179 185
 ?>