瀏覽代碼

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

Sevajol Bastien 12 年之前
父節點
當前提交
2759e20fce

+ 20 - 4
src/Muzich/AdminBundle/Controller/Admin_element/EditController.php 查看文件

6
 use Symfony\Component\Form\Form;
6
 use Symfony\Component\Form\Form;
7
 use Muzich\CoreBundle\Entity\Element;
7
 use Muzich\CoreBundle\Entity\Element;
8
 use Muzich\CoreBundle\Managers\ElementManager;
8
 use Muzich\CoreBundle\Managers\ElementManager;
9
+use Symfony\Component\HttpFoundation\RedirectResponse;
9
 
10
 
10
 class EditController extends BaseEditController
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 查看文件

21
         new: ~
21
         new: ~
22
       object_actions:
22
       object_actions:
23
         show: ~
23
         show: ~
24
+        regenerate:
25
+          route: Muzich_AdminBundle_Admin_element_regenerate
24
         edit: ~
26
         edit: ~
25
         delete: ~
27
         delete: ~
26
   filters:
28
   filters:

+ 7 - 1
src/Muzich/AdminBundle/Resources/config/routing.yml 查看文件

8
   pattern:  /Admin_user/{pk}/password/update
8
   pattern:  /Admin_user/{pk}/password/update
9
   defaults: { _controller:Muzich\AdminBundle\Controller\Admin_user\EditController::passwordUpdateAction }
9
   defaults: { _controller:Muzich\AdminBundle\Controller\Admin_user\EditController::passwordUpdateAction }
10
   requirements:
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 查看文件

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
 ?>