瀏覽代碼

Se actualizan vistas(se quita el deviceServer)

Maxi Schvindt 7 年之前
父節點
當前提交
76ad0d605f

+ 147 - 0
src/StatsBundle/Admin/CablemodemAdmin.php

@@ -0,0 +1,147 @@
+<?php
+
+namespace StatsBundle\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;
+use DeviceBundle\Utils\DeviceTypes;
+use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
+use Sonata\AdminBundle\Route\RouteCollection;
+
+class CablemodemAdmin extends BaseAdmin
+{
+
+    /**
+     * @param DatagridMapper $datagridMapper
+     */
+    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
+    {
+        $em = $this->get("doctrine.orm.entity_manager");
+        $deviceServer = $this->getParameter("device_server_base");
+        $cmtss = $em->getRepository("StatsBundle:device")->findBy(array('deviceServer' => $deviceServer, 'deviceType' => 'CablemodemBundle\Entity\CMTS'));
+
+        $choices = array();
+        foreach($cmtss as $cmts) {
+            $data = $cmts->jsonExtraData();
+            $name = null;
+            (isset($data['name']))? $name = $data['name'] : $name = $cmts->getIp();
+            $choices[$name] = $cmts->getDeviceId();
+        }
+
+        $datagridMapper
+            ->add('cmtsDeviceId', 'doctrine_orm_string', array(), 'choice', array('choices' => $choices))
+            ->add('deviceServer')
+            ->add('tenancyId')
+            ->add('ip')
+            ->add('mac')
+        ;
+    }
+
+    /**
+     * @param ListMapper $listMapper
+     */
+    protected function configureListFields(ListMapper $listMapper)
+    {
+        $em = $this->get("doctrine.orm.entity_manager");
+        $servers = $em->getRepository("StatsBundle:DeviceServer")->findAll();
+        
+        $cmtss_server = $urls_server = array();
+
+        foreach($servers as $deviceServer) {
+            $urls = $this->get('webservice')->getData($deviceServer->getUrl());
+            $urls_server[$deviceServer->getId()] = $urls;
+            $cmtss = $em->getRepository("StatsBundle:device")->findBy(array('deviceServer'=>$deviceServer, 'deviceType' => 'CablemodemBundle\Entity\CMTS'));
+            $cmtss_server[$deviceServer->getId()] = array();
+            foreach($cmtss as $cmts) {
+                $data = $cmts->jsonExtraData();
+                $name = null;
+                if(isset($data['name'])) $name = $data['name'];
+                $cmtss_server[$deviceServer->getId()][$cmts->getDeviceId()] = $name;
+            }
+        }
+
+        //print_r($urls_server);die;
+        $this->parameters = array('urls_server' => $urls_server, 'cmtss_server' => $cmtss_server);
+
+        $listMapper
+            /* ->add('deviceServer') */
+            //->add('extraData','string', array('template' => 'StatsBundle:CmtsInterface:base_list_field_extraData.html.twig'))
+            ->add('cmtsDeviceId', 'string', array('template' => 'StatsBundle:CmtsInterface:base_list_field_cmts.html.twig'))
+            ->add('ip')
+            ->addIdentifier('mac')
+            //->add('jsonExtraData', 'string', array('template' => 'StatsBundle:CmtsInterface:field_extra_data.html.twig'))
+            ->add('txPower')
+            ->add('rxPower')
+            ->add('uptime')
+            ->add('signal','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_signal.html.twig'))
+            ->add('microreflection','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_microreflection.html.twig'))
+            //->add('utilization','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_utilization.html.twig'))
+            //->add('inOctets','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_octets.html.twig'))
+            //->add('outOctets','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_octets.html.twig'))
+            //->add('online','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_count_cablemodem.html.twig'))
+            //->add('offline','string', array('template' => 'StatsBundle:CmtsInterface:interface_field_count_cablemodem.html.twig'))
+            
+        ;
+    }
+
+    /**
+     * @param FormMapper $formMapper
+     */
+    protected function configureFormFields(FormMapper $formMapper)
+    {
+    }
+
+    /**
+     * @param ShowMapper $showMapper
+     */
+    protected function configureShowFields(ShowMapper $showMapper)
+    {
+        $interface = $this->getSubject();
+        $cmtsDeviceId = $interface->getCmtsDeviceId();
+        $deviceServer = $interface->getDeviceServer();
+        
+        $em = $this->get("doctrine.orm.entity_manager");
+
+        $cmts = $em->getRepository("StatsBundle:device")->findOneBy(array('deviceId' => $cmtsDeviceId, 'deviceServer'=>$deviceServer, 'deviceType' => 'CablemodemBundle\Entity\CMTS'));
+        if($cmts) {
+            $data = $cmts->jsonExtraData();
+            $cmtsName = null;
+            if(isset($data['name'])) $cmtsName = $data['name'];
+        }
+
+        $showMapper
+        ->add('cmtsDeviceId', 'string', array('template' => 'StatsBundle:CmtsInterface:base_show_field_cmts.html.twig','cmtsName' => $cmtsName))
+        ->add('ip')
+        ->add('mac')
+        //->add('jsonExtraData', 'string', array('template' => 'StatsBundle:CmtsInterface:field_extra_data.html.twig', 'extend' => 'base_show_field.html.twig'))
+        ;
+    }
+
+    /**
+     * @param string $action
+     * @param Object $object
+     * 
+     * @return array
+     */
+    public function configureActionButtons($action, $object = null)
+    {
+
+        $actions = parent::configureActionButtons($action, $object);
+        /* if($action == "show") {
+            $actions['show_in_map'] = array('template' => 'StatsBundle:PonPort:map_button.html.twig');
+        } */
+        
+        return $actions;
+    }
+
+    protected function configureRoutes(RouteCollection $collection)
+    {
+        $collection->remove('delete');
+        $collection->remove('create');
+        $collection->remove('edit');
+    }
+
+}

+ 1 - 1
src/StatsBundle/Admin/CmtsInterfaceAdmin.php

@@ -67,7 +67,7 @@ class CmtsInterfaceAdmin extends BaseAdmin
         $this->parameters = array('urls_server' => $urls_server, 'cmtss_server' => $cmtss_server);
 
         $listMapper
-            ->add('deviceServer')
+            /* ->add('deviceServer') */
             //->add('extraData','string', array('template' => 'StatsBundle:CmtsInterface:base_list_field_extraData.html.twig'))
             ->add('cmtsDeviceId', 'string', array('template' => 'StatsBundle:CmtsInterface:base_list_field_cmts.html.twig'))
             ->add('index')

+ 1 - 1
src/StatsBundle/Admin/OltAdmin.php

@@ -34,7 +34,7 @@ class OltAdmin extends BaseAdmin
     protected function configureListFields(ListMapper $listMapper)
     {
         $listMapper
-                ->add('deviceServer')
+                /* ->add('deviceServer') */
                 ->add('deviceId')
                 ->add('ip')
                 ->add('extraData.name', 'string', array('template' => 'StatsBundle:Device:extra_data_text_field.html.twig', 'column' => 'name', 'label' => 'list.label_olt_device_id'))

+ 1 - 1
src/StatsBundle/Admin/OnuAdmin.php

@@ -65,7 +65,7 @@ class OnuAdmin extends BaseAdmin
         $this->parameters = array('urls_server' => $urls_server, 'olts_server' => $olts_server);
 
         $listMapper
-            ->add('deviceServer')
+            /* ->add('deviceServer') */
             ->add('oltDeviceId', 'string', array('template' => 'StatsBundle:Onu:base_list_field_olt.html.twig'))
             ->add('ponSerialNumber', 'string', array('template' => 'StatsBundle:Onu:show_link.html.twig'))
             ->add('ponPort')

+ 1 - 1
src/StatsBundle/Admin/PonPortAdmin.php

@@ -67,7 +67,7 @@ class PonPortAdmin extends BaseAdmin
 
 
         $listMapper
-            ->add('deviceServer')
+            /* ->add('deviceServer') */
             ->add('oltDeviceId', 'string', array('template' => 'StatsBundle:Onu:base_list_field_olt.html.twig'))
             ->addIdentifier('ponPort')
             ->add('txPower', 'string', array('template' => 'StatsBundle:Onu:base_list_field_tx.html.twig'))

+ 1 - 1
src/StatsBundle/Entity/Cablemodem.php

@@ -13,7 +13,7 @@ use Base\AdminBundle\Traits\TenancyIdTraitInterface;
 
 /**
  * @ORM\Table
- * @ORM\Entity(repositoryClass="StatsBundle\Repository\CablemodemRepository")
+ * @ORM\Entity
  * @UniqueEntity(fields={"deviceServer", "cmtsDeviceId", "mac"}, message="errors.duplicate_key")
  * @ORM\Table(uniqueConstraints={@ORM\UniqueConstraint(name="unique_idx", columns={"device_server_id", "cmts_device_id", "mac"})})
  */

+ 10 - 1
src/StatsBundle/Resources/config/services.yml

@@ -59,4 +59,13 @@ services:
             - { name: sonata.admin, manager_type: orm, group: List, label: Interface, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
         calls:    
             - [setTranslationDomain, [StatsBundle]]
-            - [setTemplate, ['show','StatsBundle:CmtsInterface:base_show.html.twig']]
+            - [setTemplate, ['show','StatsBundle:CmtsInterface:base_show.html.twig']]
+    
+    stats.admin.cablemodem:
+        class: StatsBundle\Admin\CablemodemAdmin
+        arguments: [~, StatsBundle\Entity\Cablemodem, SonataAdminBundle:CRUD]
+        tags:
+            - { name: sonata.admin, manager_type: orm, group: List, label: Cablemodem, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
+        calls:    
+            - [setTranslationDomain, [StatsBundle]]
+            #- [setTemplate, ['show','StatsBundle:CmtsInterface:base_show.html.twig']]

+ 10 - 0
src/StatsBundle/Resources/views/Cablemodem/base_field.html.twig

@@ -0,0 +1,10 @@
+{% set extend = 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
+{% if field_description.options.extend is defined %}
+    {% set extend = 'SonataAdminBundle:CRUD:' ~ field_description.options.extend %}
+{% endif %}
+
+{% extends extend %}
+
+{% block field %}
+
+{% endblock %}

+ 20 - 0
src/StatsBundle/Resources/views/Cablemodem/field_tx_power_in_cm.html.twig

@@ -0,0 +1,20 @@
+{% extends 'StatsBundle:Cablemodem:base_field.html.twig' %}
+
+{% block field %}
+    {% if value is null %}
+        <span class="text_column_stats">{{ 'macroFields.notavailable'|trans({},'StatsBundle') }}</span>
+    {% else %}
+        {% set style = "rx_ftth_bordo" %}
+        {% if value < 16 %}
+            {% set style = "rx_ftth_bordo" %}
+        {% elseif value >= 16 and value < 28 %}
+            {% set style = "rx_ftth_rojo" %}
+        {% elseif value >= 28 and value < 34 %}
+            {% set style = "rx_ftth_amarillo" %}
+        {% elseif value >= 34 %}
+            {% set style = "rx_ftth_verde" %}
+        {% endif %}
+
+        <span class="{{style}}">{{ value|number_format(2, '.', ',')}}</span> <span class="text_column_stats">dB</span>
+    {% endif %}
+{% endblock %}