Ver Fonte

Correcciones varias.

Maximiliano Schvindt há 8 anos atrás
pai
commit
9694e01a5b

+ 5 - 1
src/FTTHBundle/Controller/ONUController.php

@@ -8,8 +8,12 @@ use Symfony\Component\Workflow\Exception\ExceptionInterface;
 class ONUController extends Controller
 {
 
-    public function applyTransitionAction(\FTTHBundle\Entity\ONU $onu, $transition, $workflow = "state_machine.onu_state")
+    public function applyTransitionAction(\FTTHBundle\Entity\ONU $onu, $transition, $workflow = null)
     {
+        if(is_null($workflow)) {
+            $workflow = "{$onu->getWorkflowType()}.{$onu->getWorkflow()}";
+        }
+
         try {
             $this->get("{$workflow}")->apply($onu, $transition);
             $this->get('doctrine')->getManager()->flush();

+ 12 - 0
src/FTTHBundle/Entity/ONU.php

@@ -424,5 +424,17 @@ class ONU
         
         return "onu_state";
     }
+    
+    public function getWorkflowType() 
+    {
+        if($this->model) {
+            $model = $this->model;
+            if($model->getWorkflow() && $model->getWorkflow()->getEnable()) {
+                return $model->getWorkflow()->getType();
+            }
+        }
+        
+        return "state_machine";
+    }
 
 }

+ 1 - 2
src/FTTHBundle/Resources/config/routing/admin.xml

@@ -4,11 +4,10 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
 
-    <route id="admin_ftth_onu_apply_transition" path="/ftth/onu/apply_transition/{id}/{transition}/{workflow}">
+    <route id="admin_ftth_onu_apply_transition" path="/ftth/onu/apply_transition/{id}/{transition}">
         <default key="_controller">FTTHBundle:ONU:applyTransition</default>
         <default key="id">1</default>
         <default key="transition">suspend_to_active</default>
-        <default key="workflow">state_machine.onu_state</default>
     </route>
     
     <route id="admin_ftth_onu_show_workflow" path="/ftth/onu/{id}/show_workflow">

+ 6 - 1
src/WorkflowBundle/Resources/config/services.yml

@@ -5,4 +5,9 @@ services:
         tags:
             - { name: sonata.admin, manager_type: orm, group: Workflow, label: Workflow, label_catalogue: WorkflowBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
         calls:    
-            - [setTranslationDomain, [WorkflowBundle]]
+            - [setTranslationDomain, [WorkflowBundle]]
+    workflow.event.subscriber:
+        class: WorkflowBundle\Event\EventSubscriber
+        tags:
+            - { name: kernel.event_subscriber }
+        arguments: ['@service_container']