Guillermo Espinoza пре 8 година
родитељ
комит
610d283ed9

+ 91 - 0
src/FTTHBundle/Admin/OLTAdmin.php

@@ -0,0 +1,91 @@
+<?php
+
+namespace FTTHBundle\Admin;
+
+use Base\AdminBundle\Admin\BaseAdmin;
+use Sonata\AdminBundle\Datagrid\DatagridMapper;
+use Sonata\AdminBundle\Datagrid\ListMapper;
+use Sonata\AdminBundle\Form\FormMapper;
+use Sonata\AdminBundle\Show\ShowMapper;
+
+class OLTAdmin extends BaseAdmin
+{
+    /**
+     * @param DatagridMapper $datagridMapper
+     */
+    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
+    {
+        $datagridMapper
+            ->add('name')
+            ->add('mark')
+            ->add('ip')
+            ->add('snmp_community')
+            ->add('ssh_user')
+            ->add('ssh_pass')
+            ->add('firmware')
+            ->add('library_version')
+            ->add('execute_snmp')
+        ;
+    }
+
+    /**
+     * @param ListMapper $listMapper
+     */
+    protected function configureListFields(ListMapper $listMapper)
+    {
+        $listMapper
+            ->add('name')
+            ->add('mark')
+            ->add('ip')
+            ->add('snmp_community')
+            ->add('ssh_user')
+            ->add('ssh_pass')
+            ->add('firmware')
+            ->add('library_version')
+            ->add('execute_snmp')
+            ->add('_action', null, array(
+                'actions' => array(
+                    'show' => array(),
+                    'edit' => array(),
+                    'delete' => array(),
+                )
+            ))
+        ;
+    }
+
+    /**
+     * @param FormMapper $formMapper
+     */
+    protected function configureFormFields(FormMapper $formMapper)
+    {
+        $formMapper
+            ->add('name')
+            ->add('mark')
+            ->add('ip')
+            ->add('snmp_community')
+            ->add('ssh_user')
+            ->add('ssh_pass')
+            ->add('firmware')
+            ->add('library_version')
+            ->add('execute_snmp')
+        ;
+    }
+
+    /**
+     * @param ShowMapper $showMapper
+     */
+    protected function configureShowFields(ShowMapper $showMapper)
+    {
+        $showMapper
+            ->add('name')
+            ->add('mark')
+            ->add('ip')
+            ->add('snmp_community')
+            ->add('ssh_user')
+            ->add('ssh_pass')
+            ->add('firmware')
+            ->add('library_version')
+            ->add('execute_snmp')
+        ;
+    }
+}

+ 4 - 0
src/FTTHBundle/Admin/ONUAdmin.php

@@ -22,6 +22,7 @@ class ONUAdmin extends BaseAdmin
             ->add('serialNumber')
             ->add('ponSerialNumber')
             ->add('clientId')
+            ->add('olt')
         ;
     }
 
@@ -37,6 +38,7 @@ class ONUAdmin extends BaseAdmin
             ->add('serialNumber')
             ->add('ponSerialNumber')
             ->add('clientId')
+            ->add('olt')    
             ->add('currentState','string', array('template' => 'FTTHBundle:ONU:base_list_field_onu_state.html.twig'))
             ->add('transitionState')
             ->add('_action', null, array(
@@ -61,6 +63,7 @@ class ONUAdmin extends BaseAdmin
             ->add('serialNumber')
             ->add('ponSerialNumber')
             ->add('clientId')
+            ->add('olt')    
         ;
     }
 
@@ -76,6 +79,7 @@ class ONUAdmin extends BaseAdmin
             ->add('serialNumber')
             ->add('ponSerialNumber')
             ->add('clientId')
+            ->add('olt')    
         ;
     }
 

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

@@ -0,0 +1,338 @@
+<?php
+
+namespace FTTHBundle\Entity;
+
+use Doctrine\ORM\Mapping as ORM;
+use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
+use Symfony\Component\Validator\Constraints as Assert;
+
+/**
+ * @ORM\Entity
+ * @UniqueEntity("ip")
+ */
+class OLT
+{
+
+    /**
+     * @var bigint $id
+     *
+     * @ORM\Column(type="bigint", nullable=false)
+     * @ORM\Id
+     * @ORM\GeneratedValue(strategy="IDENTITY")
+     */
+    private $id;
+
+    /**
+     * @var string $name
+     *
+     * @ORM\Column(type="string", length=255, nullable=true, unique=false)
+     */
+    protected $name;
+
+    /**
+     * @var string $mark
+     *
+     * @ORM\Column(type="string", length=255, nullable=true, unique=false)
+     */
+    protected $mark;
+
+    /**
+     * @var string $ip
+     * 
+     * @ORM\Column(type="string", length=50, nullable=false, unique=true)
+     * @Assert\NotNull
+     */
+    protected $ip;
+
+    /**
+     * @var string $snmp_community
+     *
+     * @ORM\Column(type="string", length=255, nullable=true, unique=false)
+     */
+    protected $snmp_community;
+
+    /**
+     * @var string $ssh_user
+     *
+     * @ORM\Column(type="string", length=255, nullable=true, unique=false)
+     */
+    protected $ssh_user;
+
+    /**
+     * @var string $ssh_pass
+     *
+     * @ORM\Column(type="string", length=255, nullable=true, unique=false)
+     */
+    protected $ssh_pass;
+
+    /**
+     * @var string $firmware
+     *
+     * @ORM\Column(type="string", length=255, nullable=true, unique=false)
+     */
+    protected $firmware;
+
+    /**
+     * @var string $library_version
+     *
+     * @ORM\Column(type="string", length=255, nullable=true, unique=false)
+     */
+    protected $library_version;
+
+    /**
+     * @var boolean $execute_snmp
+     * 
+     * @ORM\Column(type="boolean", nullable=true, columnDefinition="BOOLEAN DEFAULT TRUE")
+     */
+    protected $execute_snmp = true;
+
+    /**
+     * @var int $tenancyId
+     *
+     * @ORM\Column(type="integer", nullable=false, options={"default":1})
+     */
+    protected $tenancyId = 1;
+    
+    /**
+     * @ORM\OneToMany(targetEntity="ONU", mappedBy="olt")
+     */
+    protected $onus;
+
+    
+    /**
+     * @return string
+     */
+    public function __toString()
+    {
+        return $this->name;
+    }
+
+    /**
+     * @return int
+     */
+    public function getId()
+    {
+        return $this->id;
+    }
+
+    /**
+     * @return string
+     */
+    public function getName()
+    {
+        return $this->name;
+    }
+
+    /**
+     * @return string
+     */
+    public function getMark()
+    {
+        return $this->mark;
+    }
+
+    /**
+     * @return string
+     */
+    public function getIp()
+    {
+        return $this->ip;
+    }
+
+    /**
+     * @return string
+     */
+    public function getSnmpCommunity()
+    {
+        return $this->snmp_community;
+    }
+
+    /**
+     * @return string
+     */
+    public function getSshUser()
+    {
+        return $this->ssh_user;
+    }
+
+    /**
+     * @return string
+     */
+    public function getSshPass()
+    {
+        return $this->ssh_pass;
+    }
+
+    /**
+     * @return string
+     */
+    public function getFirmware()
+    {
+        return $this->firmware;
+    }
+
+    /**
+     * @return string
+     */
+    public function getLibraryVersion()
+    {
+        return $this->library_version;
+    }
+
+    /**
+     * @return boolean
+     */
+    public function getExecuteSnmp()
+    {
+        return $this->execute_snmp;
+    }
+
+    /**
+     * @return int
+     */
+    public function getTenancyId()
+    {
+        return $this->tenancyId;
+    }
+
+    /**
+     * @param string $name
+     * @return $this
+     */
+    public function setName($name)
+    {
+        $this->name = $name;
+
+        return $this;
+    }
+
+    /**
+     * @param string $mark
+     * @return $this
+     */
+    public function setMark($mark)
+    {
+        $this->mark = $mark;
+
+        return $this;
+    }
+
+    /**
+     * @param string $ip
+     * @return $this
+     */
+    public function setIp($ip)
+    {
+        $this->ip = $ip;
+
+        return $this;
+    }
+
+    /**
+     * @param string $snmp_community
+     * @return $this
+     */
+    public function setSnmpCommunity($snmp_community)
+    {
+        $this->snmp_community = $snmp_community;
+
+        return $this;
+    }
+
+    /**
+     * @param string $ssh_user
+     * @return $this
+     */
+    public function setSshUser($ssh_user)
+    {
+        $this->ssh_user = $ssh_user;
+
+        return $this;
+    }
+
+    /**
+     * @param string $ssh_pass
+     * @return $this
+     */
+    public function setSshPass($ssh_pass)
+    {
+        $this->ssh_pass = $ssh_pass;
+
+        return $this;
+    }
+
+    /**
+     * @param string $firmware
+     * @return $this
+     */
+    public function setFirmware($firmware)
+    {
+        $this->firmware = $firmware;
+
+        return $this;
+    }
+
+    /**
+     * @param string $library_version
+     * @return $this
+     */
+    public function setLibraryVersion($library_version)
+    {
+        $this->library_version = $library_version;
+
+        return $this;
+    }
+
+    /**
+     * @param boolean $execute_snmp
+     * @return $this
+     */
+    public function setExecuteSnmp($execute_snmp)
+    {
+        $this->execute_snmp = $execute_snmp;
+
+        return $this;
+    }
+    
+    /**
+     * @param ONU $onu
+     * @return OLT
+     */
+    public function addOnu(ONU $onu)
+    {
+        $this->onus[] = $onu;
+        
+        return $this;
+    }
+
+    /**
+     * @param ONU $onu
+     * @return OLT
+     */
+    public function removeOnu(ONU $onu)
+    {
+        $this->onus->removeElement($onu);
+        
+        return $this;
+    }
+    
+    /**
+     * @return Doctrine\Common\Collections\Collection 
+     */
+    public function getOnus()
+    {
+        return $this->onus;
+    }
+
+    /**
+     * @param int $tenancyId
+     * @return $this
+     */
+    public function setTenancyId($tenancyId)
+    {
+        $this->tenancyId = $tenancyId;
+
+        return $this;
+    }
+
+}

+ 35 - 7
src/FTTHBundle/Entity/ONU.php

@@ -8,7 +8,6 @@ use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
 use Symfony\Component\Validator\Constraints as Assert;
 use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
 
-
 /**
  * ONU
  *
@@ -19,6 +18,7 @@ use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
  */
 class ONU
 {
+
     /**
      * @var int
      *
@@ -81,12 +81,17 @@ class ONU
      * @ORM\Column(type="string", nullable=false, options={"default": "active"}) 
      */
     protected $currentState = 'active';
-    
+
     /**
      * @ORM\Column(type="string", nullable=false, options={"default": "pending"}) 
      */
     protected $transitionState = 'pending';
 
+    /**
+     * @ORM\ManyToOne(targetEntity="OLT", inversedBy="onus", fetch="EXTRA_LAZY")
+     */
+    protected $olt;
+
     /**
      * @var int
      *
@@ -94,7 +99,7 @@ class ONU
      */
     protected $tenancyId = 1;
 
-
+    
     /**
      * @return string
      */
@@ -102,7 +107,7 @@ class ONU
     {
         return $this->ponSerialNumber;
     }
-    
+
     /**
      * Get id
      *
@@ -261,7 +266,7 @@ class ONU
     {
         return $this->currentState;
     }
-    
+
     /**
      * Set currentState
      *
@@ -269,6 +274,8 @@ class ONU
     public function setCurrentState($currentState)
     {
         $this->currentState = $currentState;
+        
+        return $this;
     }
 
     /**
@@ -279,7 +286,7 @@ class ONU
     {
         return $this->transitionState;
     }
-    
+
     /**
      * Set transitionState
      *
@@ -287,6 +294,8 @@ class ONU
     public function setTransitionState($transitionState)
     {
         $this->transitionState = $transitionState;
+        
+        return $this;
     }
 
     /**
@@ -312,5 +321,24 @@ class ONU
     {
         return $this->tenancyId;
     }
-}
+    
+    /**
+     * @return OLT
+     */
+    public function getOlt()
+    {
+        return $this->olt;
+    }
 
+    /**
+     * @param OLT $olt
+     * @return $this
+     */
+    public function setOlt(OLT $olt)
+    {
+        $this->olt = $olt;
+        
+        return $this;
+    }
+
+}

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

@@ -6,3 +6,11 @@ services:
             - { name: sonata.admin, manager_type: orm, group: FTTH, label: ONU, label_catalogue: FTTHBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
         calls:    
             - [setTranslationDomain, [FTTHBundle]]
+
+    ftth.admin.olt:
+        class: FTTHBundle\Admin\OLTAdmin
+        arguments: [~, FTTHBundle\Entity\OLT, SonataAdminBundle:CRUD]
+        tags:
+            - { name: sonata.admin, manager_type: orm, group: FTTH, label: OLT, label_catalogue: FTTHBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
+        calls:    
+            - [setTranslationDomain, [FTTHBundle]]    

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

@@ -10,10 +10,22 @@ filter:
     label_created: Creado
     label_updated: Actualizado
     label_transition_state: Transición
+    label_olt: OLT
+    label_name: Nombre
+    label_mark: Marca
+    label_snmp_community: Comunidad SNMP
+    label_ssh_user: SSH USER
+    label_ssh_pass: SSH PASS
+    label_firmware: Firmware
+    label_library_version: Versión Librería
+    label_execute_snmp: Consultar SNMP
 breadcrumb:
     link_o_n_u_list: Listado ONU
     link_o_n_u_create: Crear ONU
     link_o_n_u_delete: Eliminar ONU
+    link_o_l_t_list: Listado OLT
+    link_o_l_t_create: Crear OLT
+    link_o_l_t_delete: Eliminar OLT
 form:
     label_id: Id
     label_ip: Ip
@@ -26,6 +38,15 @@ form:
     label_created: Creado
     label_updated: Actualizado
     label_transition_state: Transición
+    label_olt: OLT
+    label_name: Nombre
+    label_mark: Marca
+    label_snmp_community: Comunidad SNMP
+    label_ssh_user: SSH USER
+    label_ssh_pass: SSH PASS
+    label_firmware: Firmware
+    label_library_version: Versión Librería
+    label_execute_snmp: Consultar SNMP
 list:
     label_id: Id
     label_ip: Ip
@@ -38,6 +59,15 @@ list:
     label_created: Creado
     label_updated: Actualizado
     label_transition_state: Transición
+    label_olt: OLT
+    label_name: Nombre
+    label_mark: Marca
+    label_snmp_community: Comunidad SNMP
+    label_ssh_user: SSH USER
+    label_ssh_pass: SSH PASS
+    label_firmware: Firmware
+    label_library_version: Versión Librería
+    label_execute_snmp: Consultar SNMP
 show:
     label_id: Id
     label_ip: Ip
@@ -49,4 +79,13 @@ show:
     label__action: Acciones
     label_created: Creado
     label_updated: Actualizado
-    label_transition_state: Transición
+    label_transition_state: Transición
+    label_olt: OLT
+    label_name: Nombre
+    label_mark: Marca
+    label_snmp_community: Comunidad SNMP
+    label_ssh_user: SSH USER
+    label_ssh_pass: SSH PASS
+    label_firmware: Firmware
+    label_library_version: Versión Librería
+    label_execute_snmp: Consultar SNMP