Parcourir la source

Arreglo del filtro de clientes en el listado de onu

Arreglo cambio de 'url_logout'
gabriel il y a 7 ans
Parent
commit
b5d3758982
2 fichiers modifiés avec 23 ajouts et 2 suppressions
  1. 1 1
      app/config/parameters.yml.dist
  2. 22 1
      src/FTTHBundle/Admin/ONUAdmin.php

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

@@ -20,7 +20,7 @@ parameters:
     jms_serializer.camel_case_naming_strategy.class: JMS\Serializer\Naming\IdenticalPropertyNamingStrategy
 
     # Url para logout en repositorio base
-    url_logout: 'http://127.0.0.1/base/app_dev.php/logout'
+    url_logout: 'http://%env(HOST_MAPAS)%/logout'
 
     # RabbitMQ parameters
     rabbit_mq.host:     127.0.0.1

+ 22 - 1
src/FTTHBundle/Admin/ONUAdmin.php

@@ -6,6 +6,7 @@ use Sonata\AdminBundle\Datagrid\DatagridMapper;
 use Sonata\AdminBundle\Datagrid\ListMapper;
 use Sonata\AdminBundle\Form\FormMapper;
 use Sonata\AdminBundle\Show\ShowMapper;
+use Sonata\DoctrineORMAdminBundle\Filter\CallbackFilter;
 use WorkflowBundle\Admin\WorkflowBaseAdmin;
 
 class ONUAdmin extends WorkflowBaseAdmin
@@ -17,7 +18,10 @@ class ONUAdmin extends WorkflowBaseAdmin
     protected function configureDatagridFilters(DatagridMapper $datagridMapper)
     {
         $datagridMapper
-            ->add('clientId')
+            ->add('clientId', CallbackFilter::class,
+                array(
+                    'callback' => array($this, 'getClientFilter'),
+                    'field_type' => 'text'))
             ->add('ponSerialNumber')
             ->add('profile')
             ->add('nap')
@@ -119,4 +123,21 @@ class ONUAdmin extends WorkflowBaseAdmin
         $this->setTemplate('create', 'FTTHBundle:ONU:form.html.twig');
         $this->setTemplate('edit', 'FTTHBundle:ONU:form.html.twig');
     }
+
+    /**
+     * Filtra las ONU por el filtro de clientes.
+     * @param $queryBuilder
+     * @param $alias
+     * @param $field
+     * @param $value
+     * @return bool
+     */
+    public function getClientFilter($queryBuilder, $alias, $field, $value)
+    {
+        $resp = false;
+        if ($value['value']) {
+            $resp = $this->get('webservice')->getClientFilter($queryBuilder, $alias, $field, $value);
+        }
+        return $resp;
+    }
 }