Luciano Andrade 8 năm trước cách đây
mục cha
commit
3f040914fa

+ 1 - 1
app/config/parameters.yml.docker

@@ -3,7 +3,7 @@
 # http://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
 parameters:
     database_driver:   pdo_mysql
-    database_host:     db
+    database_host:     mysql
     database_port:     ~
     database_name:     fd3_ftth
     database_user:     root

+ 1 - 1
composer.json

@@ -67,7 +67,7 @@
         "phpunit/phpunit": "5.5.*",
         "stof/doctrine-extensions-bundle": "^1.2",
         "voryx/restgeneratorbundle": "dev-master",
-        "base-admin": "dev-master",
+        "ik/base-admin-bundle": "dev-master",
         "ik/oauthclient-bundle": "dev-master",
         "ik/webservice-bundle": "dev-master",
         "hwi/oauth-bundle": "^0.5.3",

+ 25 - 25
composer.lock

@@ -4,31 +4,8 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "02da0e407d512618f1bb3fca37860c81",
+    "content-hash": "48293851f5a8948819b446864fecad24",
     "packages": [
-        {
-            "name": "base-admin",
-            "version": "dev-master",
-            "source": {
-                "type": "git",
-                "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/BaseAdmin.git",
-                "reference": "99f21f03eeade4f8498ac2a7ee106ada60aef429"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "Base\\AdminBundle\\": ""
-                }
-            },
-            "description": "The Flowdat3 Symfony Admin Generator",
-            "keywords": [
-                "Admin Generator",
-                "admin",
-                "bootstrap",
-                "sonata"
-            ],
-            "time": "2017-04-12 12:42:01"
-        },
         {
             "name": "behat/transliterator",
             "version": "v1.2.0",
@@ -1279,6 +1256,29 @@
             ],
             "time": "2017-01-08T14:13:58+00:00"
         },
+        {
+            "name": "ik/base-admin-bundle",
+            "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/BaseAdmin.git",
+                "reference": "24fff73a5df56804a6fe2a67a636a76b1db0f2cf"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Base\\AdminBundle\\": ""
+                }
+            },
+            "description": "The Flowdat3 Symfony Admin Generator",
+            "keywords": [
+                "Admin Generator",
+                "admin",
+                "bootstrap",
+                "sonata"
+            ],
+            "time": "2017-04-13 11:59:50"
+        },
         {
             "name": "ik/oauthclient-bundle",
             "version": "dev-master",
@@ -5425,7 +5425,7 @@
     "minimum-stability": "stable",
     "stability-flags": {
         "voryx/restgeneratorbundle": 20,
-        "base-admin": 20,
+        "ik/base-admin-bundle": 20,
         "ik/oauthclient-bundle": 20,
         "ik/webservice-bundle": 20,
         "ik/workflow-bundle": 20

+ 2 - 1
src/FTTHBundle/Admin/OLTAdmin.php

@@ -37,12 +37,13 @@ class OLTAdmin extends BaseAdmin
             ->add('snmpCommunity')
             ->add('sshUser')
             ->add('sshPass')
-            ->add('currentState')
+            ->add('currentState','string', array('template' => 'WorkflowBundle:Workflow:base_list_field_current_state.html.twig'))
             ->add('_action', null, array(
                 'actions' => array(
                     'show' => array(),
                     'edit' => array(),
                     'delete' => array(),
+                    'state' => array('template' => 'WorkflowBundle:Workflow:show_transitions.html.twig')
                 )
             ))
         ;

+ 5 - 7
src/FTTHBundle/Admin/ONUAdmin.php

@@ -35,24 +35,22 @@ class ONUAdmin extends BaseAdmin
     {
         $listMapper
 	    ->add('clientId')
+            ->add('ip')
+            ->add('mac')
+            ->add('serialNumber')
             ->add('ponSerialNumber')
             ->add('profile')
             ->add('node')
             ->add('model')
-            ->add('serialNumber')
-            ->add('mac')
             ->add('olt')
             ->add('workflow')
-            // ->add('node')
-            // ->add('profile')
-            ->add('currentState','string', array('template' => 'FTTHBundle:ONU:base_list_field_onu_state.html.twig'))
-            // ->add('transitionState')
+            ->add('currentState','string', array('template' => 'WorkflowBundle:Workflow:base_list_field_current_state.html.twig'))
             ->add('_action', null, array(
                 'actions' => array(
                     'show' => array(),
                     'edit' => array(),
                     'delete' => array(),
-                    'state' => array('template' => 'FTTHBundle:ONU:onu_state.html.twig')
+                    'state' => array('template' => 'WorkflowBundle:Workflow:show_transitions.html.twig')
                 )
             ))
         ;

+ 0 - 50
src/FTTHBundle/Controller/ONUController.php

@@ -1,50 +0,0 @@
-<?php
-
-namespace FTTHBundle\Controller;
-
-use Symfony\Bundle\FrameworkBundle\Controller\Controller;
-use Symfony\Component\Workflow\Exception\ExceptionInterface;
-
-class ONUController extends Controller
-{
-
-    public function applyTransitionAction(\FTTHBundle\Entity\ONU $onu, $transition, $workflow = null)
-    {
-        if(is_null($workflow)) {
-            $workflow = "{$onu->getWorkflowType()}.{$onu->getWorkflow()}";
-        }
-
-        $em = $this->get('doctrine')->getManager();
-        try {
-            $this->get("{$workflow}")->apply($onu, $transition);
-            $em->persist($onu);
-            $em->flush();
-        } catch (ExceptionInterface $e) {
-            $this->get('session')->getFlashBag()->add('danger', $e->getMessage());
-        }
-
-        return $this->redirect($this->generateUrl('admin_ftth_onu_list'));
-    }
-
-    public function showWorkflowAction(\FTTHBundle\Entity\ONU $onu)
-    {
-        return $this->render('FTTHBundle:ONU:show_workflow.html.twig', ['onu' => $onu]);
-    }
-
-    public function resetStateAction(\FTTHBundle\Entity\ONU $onu)
-    {
-        $workflow = $onu->getWorkflowObject();
-
-        if($workflow) {
-            $onu->setCurrentState($workflow->getInitialPlace($onu));
-        } else {
-            $onu->setCurrentState(null);
-        }
-
-        $em = $this->get('doctrine')->getManager();
-        $em->persist($onu);
-        $em->flush();
-
-        return $this->redirect($this->generateUrl('admin_ftth_onu_list'));
-    }
-}

+ 89 - 0
src/FTTHBundle/Entity/OLT.php

@@ -83,6 +83,16 @@ class OLT
      */
     protected $onus;
 
+    /**
+     * @ORM\Column(type="string", nullable=true) 
+     */
+    protected $currentState = null;
+    
+    /**
+     * @ORM\Column(type="string", nullable=false, options={"default": "success"}) 
+     */
+    protected $transitionState = 'success';
+
     
     /**
      * @return string
@@ -262,4 +272,83 @@ class OLT
 
         return $this;
     }
+
+    public function getWorkflow() 
+    {
+        $workflow = $this->getWorkflowObject();
+
+        if($workflow) {
+            return $workflow->getName();
+        }
+
+        return null;
+    }
+    
+    public function getWorkflowType() 
+    {
+        $workflow = $this->getWorkflowObject();
+
+        if($workflow) {
+            return $workflow->getType();
+        }
+        
+        return null;
+    }
+
+    public function getWorkflowObject() 
+    {
+        //if($this->model) {
+        //    $model = $this->model;
+        //    if($model->getWorkflow()) {
+        //        return $model->getWorkflow();
+        //    }
+        //}
+
+        return null;
+    }
+
+    /**
+     * Get currentState
+     *
+     */
+    public function getCurrentState()
+    {
+        return $this->currentState;
+    }
+
+    /**
+     * Set currentState
+     *
+     */
+    public function setCurrentState($currentState)
+    {
+        $this->currentState = $currentState;
+        
+        return $this;
+    }
+
+    /**
+     * Get transitionState
+     *
+     */
+    public function getTransitionState()
+    {
+        return $this->transitionState;
+    }
+
+    /**
+     * Set transitionState
+     *
+     */
+    public function setTransitionState($transitionState)
+    {
+        $this->transitionState = $transitionState;
+        
+        return $this;
+    }
+
+    public function getTransitionWorkflow() 
+    {
+        return "transition_state";
+    }
 }

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

@@ -505,4 +505,13 @@ class ONU
         return "transition_state";
     }
 
+    // Para coincider entre estos workflow servidos por servicio y aquellos levantados por ABM
+    public function getServiceWorkflow() {
+        global $kernel;
+        $registry = $kernel->getContainer()->get('workflow.registry');
+        $workflow = $registry->get($this,$this->getWorkflow());
+
+        return $workflow;
+    }
+
 }

+ 0 - 15
src/FTTHBundle/Resources/config/routing/admin.xml

@@ -4,19 +4,4 @@
     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}">
-        <default key="_controller">FTTHBundle:ONU:applyTransition</default>
-        <default key="id">1</default>
-        <default key="transition">suspend_to_active</default>
-    </route>
-    
-    <route id="admin_ftth_onu_show_workflow" path="/ftth/onu/{id}/show_workflow">
-        <default key="_controller">FTTHBundle:ONU:showWorkflow</default>
-        <default key="id">1</default>
-    </route>
-    
-    <route id="admin_ftth_onu_reset_state" path="/ftth/onu/{id}/reset_state">
-        <default key="_controller">FTTHBundle:ONU:resetState</default>
-        <default key="id">1</default>
-    </route>
 </routes>

+ 0 - 7
src/FTTHBundle/Resources/views/ONU/base_list_field_onu_state.html.twig

@@ -1,7 +0,0 @@
-{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
-
-{% block field %}
-    <div>
-        <a href="{{path('admin_ftth_onu_show_workflow',{id:object.getId()})}}">{{object.getCurrentState()}}</a>
-    </div>
-{% endblock %}

+ 0 - 33
src/FTTHBundle/Resources/views/ONU/layout.html.twig

@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-        <meta charset="utf-8">
-        <meta http-equiv="X-UA-Compatible" content="IE=edge">
-        <meta name="viewport" content="width=device-width, initial-scale=1">
-        <title>Workflow demo application</title>
-        {% block stylesheets %}
-            <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
-            <style>
-                svg text {
-                    font-size: 0.75em;
-                    font-weight: bold;
-                }
-            </style>
-        {% endblock %}
-    </head>
-    <body>
-        <div class="container">
-
-            {% block content %}
-
-                {% block main '' %}
-            
-                <hr />
-            {% endblock %}
-        </div>
-        {% block javascripts %}
-            <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
-            <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
-        {% endblock %}
-    </body>
-</html>

+ 0 - 24
src/FTTHBundle/Resources/views/ONU/onu_state.html.twig

@@ -1,24 +0,0 @@
-{#<a href="{{ admin.generateObjectUrl('edit', object) }}" class="btn btn-sm btn-default view_link">
-    <i class="fa fa-hashtag" aria-hidden="true"></i>
-    Workflow
-</a>        #}
-
-{% if object.getWorkflowObject() is null %}
-    <a  href="#" name="transition" value="" class="btn btn-sm view_link btn-danger" disabled="disabled">{{ "Undefined Workflow"|trans({},'FTTHBundle') }}</a>
-{% else %}
-    {% if workflow_correct_state(object, object.getWorkflow()) %}
-        {% for transition in workflow_transitions(object, object.getWorkflow()) %}
-            <a  href="{{path('admin_ftth_onu_apply_transition',{id:object.getId(),transition:transition.name})}}" name="transition" value="{{ transition.name }}"
-            {% if workflow_can(object, transition.name, object.getWorkflow()) -%}
-                class="btn btn-sm btn-default view_link"
-            {% else %}
-                class="btn btn-sm btn-default view_link btn-danger" disabled="disabled"
-            {% endif %}
-        > {{ transition.name }}</a>
-        {% endfor %}
-    {% elseif object.getCurrentState() is null %}
-        <a  href="{{ path('admin_ftth_onu_reset_state', {id: object.getId()}) }}" name="transition" value="" class="btn btn-sm view_link btn-danger">{{ "Undefined State"|trans({},'FTTHBundle') }}</a>
-    {% else %}
-        <a  href="{{ path('admin_ftth_onu_reset_state', {id: object.getId()}) }}" name="transition" value="" class="btn btn-sm view_link btn-danger">{{ "Incorrect State"|trans({},'FTTHBundle') }}</a>
-    {% endif %}
-{% endif %}

+ 0 - 77
src/FTTHBundle/Resources/views/ONU/show_workflow.html.twig

@@ -1,77 +0,0 @@
-{% extends 'FTTHBundle:ONU:layout.html.twig' %}
-
-{% block main %}
-    <h1>ONU "{{ onu.ponSerialNumber}}"</h1>
-    <div class="row">
-        <div class="col-md-5">
-            <h2>Workflow: {{onu.getWorkflow()}}</h2>
-            <p>
-                <code>
-                    FTTHBundle\Entity\ONU::current_state = {{ onu.getCurrentState() }}
-                </code>
-                {#<br />
-                <code>
-                    FTTHBundle\Entity\ONU::transitionState = {{ onu.getTransitionState() }}
-                </code>#}
-            </p>
-            <p>
-                <form action="{{ path('admin_ftth_onu_reset_state', {id: onu.getId()}) }}" method="post" class="form-inline">
-                    <button type="submit" class="btn btn-danger btn-xs">Reset State</button>
-                </form>
-            </p>
-        </div>
-        <div class="col-md-6">
-            <h2>What can you do?</h2>
-                <div class="btn-group-vertical" role="group">
-                    <code style="color:black;text-align:center">current_state</code> 
-                    {% if workflow_transitions(onu, onu.getWorkflow())|length > 0 %}
-                        {% for transition in workflow_transitions(onu, onu.getWorkflow()) %}
-                            <a  href="{{path('admin_ftth_onu_apply_transition',{id:onu.getId(),transition:transition.name})}}" name="transition" value="{{ transition.name }}"
-                                {% if workflow_can(onu, transition.name, onu.getWorkflow()) -%}
-                                    class="btn btn-primary"
-                                {%- else -%}
-                                    class="btn btn-danger" disabled="disabled"
-                                {%- endif -%}
-                            >
-                                {{ transition.name }}
-                            </a>
-                        {% endfor %}
-                    {% else %}
-                        <a  href="" name="transition" class="btn btn-danger" disabled="disabled">Sin opciones</a>
-                    {% endif %}
-                </div>
-                {#<div class="btn-group-vertical" role="group">
-                    <code style="color:black;text-align:center">transation_state</code> 
-                    {% if workflow_transitions(onu, "transition_state")|length > 0 %}
-                        {% for transition in workflow_transitions(onu, "transition_state") %}
-                            <a  href="{{path('admin_ftth_onu_apply_transition',{id:onu.getId(),transition:transition.name,workflow:'workflow.transition_state'})}}" name="transition" value="{{ transition.name }}"
-                                {% if workflow_can(onu, transition.name, "transition_state") -%}
-                                    class="btn btn-primary"
-                                {%- else -%}
-                                    class="btn btn-danger" disabled="disabled"
-                                {%- endif -%}
-                            >
-                                {{ transition.name }}
-                            </a>
-                        {% endfor %}
-                    {% else %}
-                        <a  href="" name="transition" class="btn btn-danger" disabled="disabled">Sin opciones</a>
-                    {% endif %}
-                </div>#}
-            <br />
-        </div>
-    </div>
-    <div>
-        <br />
-        <img src="http://200.50.175.17/ftth/workflows_png/{{onu.getWorkflow()}}.png?nocache={{ date().timestamp }}" />
-        {#<br />
-        <img src="http://200.50.175.17/ftth/workflows_png/transition_state.png?nocache={{ date().timestamp }}" />#}
-    </div>
-    <br />
-    <div>
-        <a  href="{{path('admin_ftth_onu_list')}}" class="btn btn-primary">
-            Volver al listado de onus
-        </a>
-    </div>
-    
-{% endblock %}