Browse Source

FD3-708 Refactory para simplificar un poco el ONUAdmin

Espinoza Guillermo 6 years ago
parent
commit
115ee7ff7d
1 changed files with 33 additions and 32 deletions
  1. 33 32
      src/FTTHBundle/Admin/ONUAdmin.php

+ 33 - 32
src/FTTHBundle/Admin/ONUAdmin.php

@@ -16,6 +16,7 @@ use Symfony\Component\Form\Extension\Core\Type\CollectionType;
 use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
 use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
 use Symfony\Component\Form\Extension\Core\Type\HiddenType;
+use FTTHBundle\Entity\ONUTemplate;
 use FTTHBundle\Form\ServicePortType;
 use FTTHBundle\Utils\OLTModelMark;
 use WorkflowBundle\Admin\WorkflowBaseAdmin;
@@ -101,11 +102,14 @@ class ONUAdmin extends WorkflowBaseAdmin
      */
     protected function configureFormFields(FormMapper $formMapper)
     {
-        $marks = OLTModelMark::getChoices();
         $em = $this->get("doctrine.orm.entity_manager");
-        $template = $em->getRepository('FTTHBundle:ONUTemplate')->findOneBy(array('base'=>true));
+        $template = $em->getRepository(ONUTemplate::class)
+                    ->findOneBy(array(
+                        'base' => true,
+                    ));
         $subject = $this->getSubject();
 
+        $marks = OLTModelMark::getChoices();
         foreach ($marks as $m) {
             $hidden[$m] = 'hidden';
         }
@@ -120,15 +124,17 @@ class ONUAdmin extends WorkflowBaseAdmin
             ],
         ];
 
+        // Editando la ONU o hay template base o pasado como parámetro
         if ($subject->getId() || $template) {
-            if($subject->getOlt()) {
+            if ($subject->getOlt()) {
                 $olt = $subject->getOlt();
-            } elseif($template) {
+            } elseif ($template) {
                 $olt = $template->getOlt();
             } else {
                 $olt = null;
             }
-
+            
+            // Según el modelo de OLT se muestran algunos campos específicos
             if ($olt && $olt->getModel()) {
                 $oltModel = $olt->getModel();
                 $mark = $oltModel->getMark();
@@ -143,10 +149,9 @@ class ONUAdmin extends WorkflowBaseAdmin
             }
         }
 
-        if($template && $this->isCurrentRoute('create')) {
-            $translator = $this->get('translator');
+        if ($template && $this->isCurrentRoute('create')) {
             $flashbag = $this->get('session')->getFlashBag();
-            $flashbag->add("warning", $translator->trans("msg_use_template_onu_in_create_onu_ftth",array(),"FTTHBundle"));
+            $flashbag->add("warning", $this->trans("msg_use_template_onu_in_create_onu_ftth"));
         }
 
         $formMapper
@@ -181,7 +186,7 @@ class ONUAdmin extends WorkflowBaseAdmin
                     ->add('position')
                 ->end()
                 ->with('Huawei', ['class' => "col-md-12 {$hidden['Huawei']} olt_mark Huawei"])
-                    ->add('service_port',CollectionType::class, array(
+                    ->add('service_port', CollectionType::class, array(
                         'entry_type' => "FTTHBundle\\Form\\ServicePortType",
                         'allow_add' => true,
                         'allow_delete' => true,
@@ -217,38 +222,33 @@ class ONUAdmin extends WorkflowBaseAdmin
 
 
         $tr069Data = 0;
-
-        if($this->isCurrentRoute('edit')) {
-
-            if($this->getParameter('tr069_service')) {
-                $object = $this->getSubject();
+        if ($this->isCurrentRoute('edit')) {
+            if ($this->getParameter('tr069_service')) {
                 $serviceName = $this->getParameter('tr069_api');
-                if($model = $object->getModel()) {
+                if ($model = $subject->getModel()) {
                     if($model->getData('tr069_api')) $serviceName = $model->getData('tr069_api');
                 }
                 $tr069 = $this->get($serviceName);
 
                 $query = array('$or' => array());
-                if($object->getSerialNumber()) {
-                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($object->getSerialNumber()));
-                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($object->getSerialNumber()));
+                if ($subject->getSerialNumber()) {
+                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($subject->getSerialNumber()));
+                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($subject->getSerialNumber()));
                 }
 
-                if($object->getPonSerialNumber()) {
-                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($object->getPonSerialNumber()));
-                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($object->getPonSerialNumber()));
+                if ($subject->getPonSerialNumber()) {
+                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($subject->getPonSerialNumber()));
+                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($subject->getPonSerialNumber()));
                 }
 
-                if($object->getPonSerialNumberAux()) {
-                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($object->getPonSerialNumberAux()));
-                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($object->getPonSerialNumberAux()));
+                if ($subject->getPonSerialNumberAux()) {
+                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtoupper($subject->getPonSerialNumberAux()));
+                    $query['$or'][] = array("InternetGatewayDevice.DeviceInfo.SerialNumber" => strtolower($subject->getPonSerialNumberAux()));
                 }
 
-
                 $devices = $tr069->getDevices($query);
 
-                if(is_array($devices) && isset($devices[0]) && isset($devices[0]['_id'])) {
-
+                if (is_array($devices) && isset($devices[0]) && isset($devices[0]['_id'])) {
                     $tr069Data = $tr069->getTR069Data($devices[0]);
 
                     $id = $tr069Data['_id'] ?? null;
@@ -311,7 +311,7 @@ class ONUAdmin extends WorkflowBaseAdmin
          *  Si vienen parámetros por GET de olt=id o psn=string seteamos los campos
          */
         $formMapper->getFormBuilder()->addEventListener(FormEvents::PRE_SET_DATA,
-            function (FormEvent $event) use ($formMapper, $template, $subject) {
+            function (FormEvent $event) use ($em, $template) {
                 $form = $event->getForm();
 
                 if ($template && $this->isCurrentRoute('create')) {
@@ -319,16 +319,17 @@ class ONUAdmin extends WorkflowBaseAdmin
                 }
 
                 $olt = $this->getRequest()->query->get('olt');
-                if(!is_null($olt)) {
-                    $em = $this->get("doctrine.orm.entity_manager");
-
+                if (!is_null($olt)) {
                     $query_olt = $em->createQueryBuilder('o')
                             ->select('o')
                             ->from('FTTHBundle:OLT', 'o')
                             ->where('o.id = :id')
                             ->setParameter('id', $olt);
 
-                    $form->add('olt', 'entity', array('class' => 'FTTHBundle:OLT', 'query_builder' => $query_olt));
+                    $form->add('olt', 'entity', array(
+                        'class' => 'FTTHBundle:OLT', 
+                        'query_builder' => $query_olt
+                    ));
                 }
 
                 $ponSerialNumber = $this->getRequest()->query->get('psn');