Переглянути джерело

Merge branch 'ftth#48' into 'master'

ftth#48

See merge request interlink-sa/flowdat3/modules/ftth!148
Maximiliano Schvindt 5 роки тому
батько
коміт
d4ddea7860

Різницю між файлами не показано, бо вона завелика
+ 2 - 2
app/DoctrineMigrations/src/action.yml


+ 14 - 0
app/DoctrineMigrations/src/oltmodel.yml

@@ -59,3 +59,17 @@ insertorupdate:
             library: "OIDSBase"
             extra_data: "{\r\n\"model\": \"Furukawa\"\r\n}"
             tenancy_id: 1
+        -
+            id: 9
+            name: "Huawei MA5800"
+            mark: "Huawei"
+            library: "OIDSHuaweiV1"
+            extra_data: "{\r\n\"model\": \"Huawei-MA5800\",\r\n\"auto-create-service-ports\" : true\r\n}"
+            tenancy_id: 1
+        -
+            id: 10
+            name: "Huawei MA5608T-v1"
+            mark: "Huawei"
+            library: "OIDSHuaweiV1"
+            extra_data: "{\r\n\"model\": \"Huawei-MA5608T-v1\",\r\n\"auto-create-service-ports\" : true\r\n}"
+            tenancy_id: 1   

Різницю між файлами не показано, бо вона завелика
+ 40 - 0
app/DoctrineMigrations/src/template.yml


+ 1 - 1
app/DoctrineMigrations/src/vlan_id.yml

@@ -1,4 +1,4 @@
-insertorupdate:
+insertignore:
     vlan_id:
         -
           id: 1

+ 2 - 0
src/FTTHBundle/Admin/NAPAdmin.php

@@ -74,8 +74,10 @@ class NAPAdmin extends BaseAdmin
             ])
             ->add('olt', null, [
                 'disabled' => $disabled,
+                'required' => true,
                 'attr' => [
                     'readonly' => $readonly,
+                    'required' => 'required'
                 ],
             ])
             ->add('slot', null, [

+ 9 - 3
src/FTTHBundle/Admin/ONUAdmin.php

@@ -224,6 +224,7 @@ class ONUAdmin extends WorkflowBaseAdmin
                                 'disabled' => $disabled,
                                 'attr' => [
                                     'readonly' => $readonly,
+                                    'required' => 'required'
                                 ],
                                 ))
                     ->add('model', null, [
@@ -290,6 +291,7 @@ class ONUAdmin extends WorkflowBaseAdmin
                             'readonly' => $readonly,
                         ],
                     ])
+                    ->add('catv')
                 ->end()
                 ->with('Huawei', ['class' => "col-md-12 {$hidden['Huawei']} olt_mark Huawei"])
                     ->add('servicePorts', CollectionType::class, array(
@@ -318,7 +320,6 @@ class ONUAdmin extends WorkflowBaseAdmin
                             'readonly' => $readonly,
                         ],
                     ])
-                    ->add('catv')
                 ->end()
                 ->with("FiberLink | FiberHome", ['class' => "col-md-12 olt_mark FiberLink FiberHome"])
                     ->add('vlans', null, array(
@@ -342,7 +343,8 @@ class ONUAdmin extends WorkflowBaseAdmin
                 'ponSerialNumberAux' => $this->trans("helps.onu_pon_serial_number_aux"),
                 'servicePorts' => $this->trans("helps.service_port"),
                 'mac' => $this->trans("helps.mac"),
-                'radiusAuth' => $this->trans("helps.radiusAuth")
+                'radiusAuth' => $this->trans("helps.radiusAuth"),
+                'catv' => $this->trans("helps.catv")
             ));
 
 
@@ -535,6 +537,7 @@ class ONUAdmin extends WorkflowBaseAdmin
                     ->add('onuProfile')
                     ->add('trafficProfileIn')
                     ->add('trafficProfileOut')
+                    ->add('catv')
                     ;
 
                     // Consulto en stats la url del detalle de onu
@@ -561,7 +564,6 @@ class ONUAdmin extends WorkflowBaseAdmin
                     ->add('vlan')
                     ->add('vlanProfile', null, $optionsZTEV4)
                     ->add('tcontprofile')
-                    ->add('catv')
                 ->end()
                 ->with('FiberLink', ['class' => "col-md-12 {$hidden['FiberLink']} olt_mark FiberLink"])
                     ->add('vlans', null, array(
@@ -773,6 +775,10 @@ class ONUAdmin extends WorkflowBaseAdmin
         if($tcontprofile = $template->getTcontprofile()) {
             $form->add('tcontprofile', null, array('data' => $tcontprofile));
         }
+        
+        if($catv = $template->getCatv()) {
+            $form->add('catv', null, array('data' => $catv));
+        }
 
         if($vlans = $template->getVlans()) {
             $form->add('vlans', null, array('data' => $vlans));

+ 23 - 1
src/FTTHBundle/Entity/ONUTemplate.php

@@ -123,7 +123,7 @@ class ONUTemplate implements TenancyIdTraitInterface
     protected $base = false;
 
     /**
-     * @ORM\Column(type="boolean", nullable=true, options={"default": true})
+     * @ORM\Column(type="boolean", nullable=true, columnDefinition="BOOLEAN DEFAULT TRUE")
      */
     protected $catv = true;
 
@@ -507,4 +507,26 @@ class ONUTemplate implements TenancyIdTraitInterface
         return $this->onuProfile;
     }
 
+    /**
+     * Set catv
+     *
+     * @param boolean $e
+     * @return ONUTemplate
+     */
+    public function setCatv($e)
+    {
+        $this->catv = $e;
+        return $this;
+    }
+
+    /**
+     * Get catv
+     *
+     * @return boolean
+     */
+    public function getCatv()
+    {
+        return $this->catv;
+    }
+
 }

+ 44 - 0
src/FTTHBundle/EventListener/NAPAddressSubscriber.php

@@ -5,9 +5,30 @@ namespace FTTHBundle\EventListener;
 use Doctrine\Common\EventSubscriber;
 use Doctrine\ORM\Event\LifecycleEventArgs;
 use FTTHBundle\Entity\NAP;
+use Symfony\Component\Translation\TranslatorInterface;
 
 class NAPAddressSubscriber implements EventSubscriber
 {
+    /**
+     * @var TranslatorInterface
+     */
+    private $translator;
+
+    /**
+     * @return TranslatorInterface
+     */
+    public function getTranslator()
+    {
+        return $this->translator;
+    }
+
+    /**
+     * @param TranslatorInterface $translator
+     */
+    public function setTranslator($translator)
+    {
+        $this->translator = $translator;
+    }
 
     /**
      * @return array
@@ -17,6 +38,7 @@ class NAPAddressSubscriber implements EventSubscriber
         return array(
             'prePersist',
             'preUpdate',
+            'preRemove'
         );
     }
 
@@ -56,4 +78,26 @@ class NAPAddressSubscriber implements EventSubscriber
         }
     }
 
+    /**
+     * @param LifecycleEventArgs $args
+     */
+    public function preRemove(LifecycleEventArgs $args)
+    {
+
+        $entity = $args->getEntity();
+        if ($entity instanceof NAP) {
+
+            $em = $args->getEntityManager();
+            $translator = $this->getTranslator();
+
+            $onus = $em->getRepository('FTTHBundle\Entity\ONU')->findByNap($entity);
+            
+            $message = $translator->trans('Nap_Delete_Deneid', [], "FTTHBundle");
+            
+            if($onus) {
+                throw new \Exception($message);
+            }
+        }
+    }    
+
 }

+ 2 - 0
src/FTTHBundle/Resources/config/services.yml

@@ -79,6 +79,8 @@ services:
         class: FTTHBundle\EventListener\NAPAddressSubscriber
         tags:
             - { name: doctrine.event_subscriber, connection: default }
+        calls:
+            - [setTranslator, ['@translator']]
 
     sonata.admin.TContProfile:
         class: FTTHBundle\Admin\TContProfileAdmin

+ 3 - 1
src/FTTHBundle/Resources/translations/FTTHBundle.es.yml

@@ -367,6 +367,7 @@ helps:
     profile_upload: Expresado en bits
     profile_download: Expresado en bits
     profile_template: Template a utilizar para gestión de radius
+    catv: Utilizado para habilitar/deshabilitar CATV en la ONU conectada a OLT ZTE o Huawei (algunos modelos).
 error:
     address_not_found: La dirección "%client_address%" no fue encontrada en los servicios de google.
     nap_relation_olt_not_found: No se encontró la relación entre el nap y la olt.
@@ -414,4 +415,5 @@ Show stats: Mostrar detalle
 Set 0 to disable autodiscovery or set a x number to scan each x minutes the ONUs connected but without configuration: Seleccione 0 para deshabilitar la función 'Autodiscovery' o seleccione un valor x para escanear cada x minutos las ONUs conectadas pero sin configurar. 
 Profile to set the ONUs by autodiscovery: Perfíl con el cual se configurarán las ONUs mediante Autodiscovery.
 errors.duplicate_mac_key: La MAC se encuentra asignada a otra ONU
-warning.disabled.fields: Para evitar problemas en la configuración, algunos campos fueron deshabilitados
+warning.disabled.fields: Para evitar problemas en la configuración, algunos campos fueron deshabilitados
+Nap_Delete_Deneid: No puede eliminar un NAP que tiene ONUs asociadas