瀏覽代碼

Se actualiza el nombre de la entidad y se agrega tenencia y servidor a
los dispositivos, para identificar entre los clientes.

Maximiliano Schvindt 8 年之前
父節點
當前提交
a261e1ca38

+ 4 - 4
composer.lock

@@ -1285,7 +1285,7 @@
             "source": {
                 "type": "git",
                 "url": "ssh://git@infra.flowdat.com:222/VendorSoftwareFlowdat3/DeviceBundle.git",
-                "reference": "bf1029b73d5370885cc3790c5ed708b3263848ca"
+                "reference": "e8ca2d03e566e7a7daa02cb9355a5f4f051ce024"
             },
             "type": "library",
             "autoload": {
@@ -1300,7 +1300,7 @@
                 "bundle",
                 "validators"
             ],
-            "time": "2017-05-30 18:33:01"
+            "time": "2017-07-05 12:23:57"
         },
         {
             "name": "ik/extra-data-bundle",
@@ -1308,7 +1308,7 @@
             "source": {
                 "type": "git",
                 "url": "ssh://git@infra.flowdat.com:222/VendorSoftwareFlowdat3/ExtraDataBundle.git",
-                "reference": "a5a6158cd382490cafd6510334cc63fc50865a58"
+                "reference": "c88fcf124002df00876323fc45039b142bad1403"
             },
             "type": "library",
             "autoload": {
@@ -1323,7 +1323,7 @@
                 "bundle",
                 "extra-data"
             ],
-            "time": "2017-05-29 15:02:46"
+            "time": "2017-07-05 12:20:18"
         },
         {
             "name": "ik/oauthclient-bundle",

+ 8 - 3
src/StatsBundle/Admin/StatsDeviceAdmin.php

@@ -10,7 +10,7 @@ use Sonata\AdminBundle\Show\ShowMapper;
 use DeviceBundle\Utils\DeviceTypes;
 use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
 
-class StatsDeviceAdmin extends BaseAdmin
+class DeviceAdmin extends BaseAdmin
 {
 
     /**
@@ -19,6 +19,7 @@ class StatsDeviceAdmin extends BaseAdmin
     protected function configureDatagridFilters(DatagridMapper $datagridMapper)
     {
         $datagridMapper
+                ->add('deviceServer')
                 ->add('deviceId')
                 ->add('deviceType')
                 ->add('ip')
@@ -31,8 +32,10 @@ class StatsDeviceAdmin extends BaseAdmin
     protected function configureListFields(ListMapper $listMapper)
     {
         $listMapper
+                ->add('deviceServer')
                 ->add('deviceId')
-                ->add('deviceType')
+                //->add('deviceType')
+                ->add('shortType')
                 ->add('ip')
                 ->add('extraData')
                 ->add('_action', null, array(
@@ -51,6 +54,7 @@ class StatsDeviceAdmin extends BaseAdmin
     protected function configureFormFields(FormMapper $formMapper)
     {
         $formMapper
+                ->add('deviceServer')
                 ->add('deviceId')
                 ->add('deviceType', ChoiceType::class, array(
                     'choices' => DeviceTypes::getChoices(),
@@ -68,6 +72,7 @@ class StatsDeviceAdmin extends BaseAdmin
     protected function configureShowFields(ShowMapper $showMapper)
     {
         $showMapper
+                ->add('deviceServer')
                 ->add('deviceId')
                 ->add('deviceType')
                 ->add('ip')
@@ -85,7 +90,7 @@ class StatsDeviceAdmin extends BaseAdmin
     {
         $actions = parent::configureActionButtons($action, $object);
         $actions['update_devices'] = array(
-            'template' => 'StatsBundle:StatsDevice:update_devices_button.html.twig',
+            'template' => 'StatsBundle:Device:update_devices_button.html.twig',
         );
 
         return $actions;

+ 2 - 2
src/StatsBundle/Command/StatsDevicesCommand.php

@@ -7,7 +7,7 @@ use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 use StatsBundle\Services\DeviceManager;
 
-class StatsDevicesCommand extends ContainerAwareCommand
+class DevicesCommand extends ContainerAwareCommand
 {
 
     protected function configure()
@@ -15,7 +15,7 @@ class StatsDevicesCommand extends ContainerAwareCommand
         $this
                 ->setName('stats:devices')
                 ->setDescription('Stats Devices command')
-                ->setHelp('This command allows you to get and update stats devices list from devices server url')
+                ->setHelp('This command allows you to get and update devices list from devices server url')
         ;
     }
 

+ 1 - 1
src/StatsBundle/Controller/StatsController.php

@@ -22,7 +22,7 @@ class StatsController extends Controller
         $statsDeviceManager = $this->get('stats.device.manager');
         $statsDeviceManager->getDevices();
 
-        return $this->redirect($this->generateUrl('admin_stats_statsdevice_list'));
+        return $this->redirect($this->generateUrl('admin_stats_device_list'));
     }
 
     /**

+ 34 - 4
src/StatsBundle/Entity/StatsDevice.php

@@ -13,7 +13,7 @@ use Symfony\Component\Validator\Constraints as Assert;
  * 
  * @UniqueEntity(fields={"ip"}, message="errors.duplicate_key")
  */
-class StatsDevice
+class Device
 {
 
     use ExtraDataTrait;
@@ -55,6 +55,12 @@ class StatsDevice
      */
     private $deviceId;
 
+    /**
+     * @ORM\ManyToOne(targetEntity="DeviceServer", inversedBy="devices", fetch="EXTRA_LAZY")
+     * 
+     */
+    protected $deviceServer;
+    
 
     /**
      * @return string
@@ -75,7 +81,7 @@ class StatsDevice
     /**
      * @param string $ip
      *
-     * @return StatsDevice
+     * @return Device
      */
     public function setIp($ip = null)
     {
@@ -95,7 +101,7 @@ class StatsDevice
     /**
      * @param string $deviceType
      *
-     * @return StatsDevice
+     * @return Device
      */
     public function setDeviceType($deviceType)
     {
@@ -115,7 +121,7 @@ class StatsDevice
     /**
      * @param int $deviceId
      *
-     * @return StatsDevice
+     * @return Device
      */
     public function setDeviceId($deviceId)
     {
@@ -132,4 +138,28 @@ class StatsDevice
         return $this->deviceId;
     }
 
+    /**
+     * @return DeviceServer
+     */
+    public function getDeviceServer()
+    {
+        return $this->deviceServer;
+    }
+
+    /**
+     * @param DeviceServer $deviceSerevr
+     * @return $this
+     */
+    public function setDeviceServer($deviceServer)
+    {
+        $this->deviceServer = $deviceServer;
+
+        return $this;
+    }
+
+    public function getShortType() 
+    {
+        return str_replace("FTTHBundle\\Entity\\","",$this->deviceType);
+    }
+
 }

+ 5 - 5
src/StatsBundle/Resources/config/services.yml

@@ -8,14 +8,14 @@ services:
         calls:    
             - [setTranslationDomain, [StatsBundle]]
 
-    stats.admin.stats_device:
-        class: StatsBundle\Admin\StatsDeviceAdmin
-        arguments: [~, StatsBundle\Entity\StatsDevice, SonataAdminBundle:CRUD]
+    stats.admin.device:
+        class: StatsBundle\Admin\DeviceAdmin
+        arguments: [~, StatsBundle\Entity\Device, SonataAdminBundle:CRUD]
         tags:
-            - { name: sonata.admin, manager_type: orm, group: Stats, label: StatsDevice, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
+            - { name: sonata.admin, manager_type: orm, group: Stats, label: Device, label_catalogue: StatsBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
         calls:    
             - [setTranslationDomain, [StatsBundle]]
-            - [setTemplate, ['show','StatsBundle:StatsDevice:show.html.twig']]
+            - [setTemplate, ['show','StatsBundle:Device:show.html.twig']]
 
     stats.device.manager:
         class: StatsBundle\Services\DeviceManager

+ 1 - 0
src/StatsBundle/Resources/translations/StatsBundle.es.yml

@@ -43,6 +43,7 @@ help:
 Stats: Estadísticas
 DeviceServer: Servidor Dispositivos
 StatsDevice: Dispositivo
+Device: Dispositivo
 
 link_action_update_devices: Actualizar dispositivos
 

src/StatsBundle/Resources/views/StatsDevice/show.html.twig → src/StatsBundle/Resources/views/Device/show.html.twig


src/StatsBundle/Resources/views/StatsDevice/update_devices_button.html.twig → src/StatsBundle/Resources/views/Device/update_devices_button.html.twig


+ 24 - 20
src/StatsBundle/Services/DeviceManager.php

@@ -4,7 +4,7 @@ namespace StatsBundle\Services;
 
 use Doctrine\ORM\EntityManagerInterface;
 use Doctrine\ORM\EntityRepository;
-use StatsBundle\Entity\StatsDevice;
+use StatsBundle\Entity\Device;
 use Symfony\Component\Validator\Validator\ValidatorInterface;
 use WebserviceBundle\Services\Webservice;
 
@@ -29,7 +29,7 @@ class DeviceManager
     /**
      * @var EntityRepository 
      */
-    private $statsDeviceRepository;
+    private $deviceRepository;
 
     /**
      * @var Webservice 
@@ -46,7 +46,7 @@ class DeviceManager
     {
         $this->em = $em;
         $this->deviceServerRepository = $em->getRepository('StatsBundle:DeviceServer');
-        $this->statsDeviceRepository = $em->getRepository('StatsBundle:StatsDevice');
+        $this->deviceRepository = $em->getRepository('StatsBundle:Device');
         $this->validator = $validator;
         $this->webservice = $webservice;
     }
@@ -71,7 +71,7 @@ class DeviceManager
                     unset($remoteDevice['id']);
                     unset($remoteDevice['deviceType']);
                     unset($remoteDevice['deviceId']);
-                    $device = $this->create($deviceType, $deviceId, $remoteDevice);
+                    $device = $this->create($deviceType, $deviceId, $deviceServer, $remoteDevice);
                     if ($device) {
                         $devices[] = $device;
                     }
@@ -87,30 +87,34 @@ class DeviceManager
      * @param int $deviceId
      * @param array $data
      * 
-     * @return StatsDevice
+     * @return Device
      */
-    public function create($deviceType, $deviceId, $data = array())
+    public function create($deviceType, $deviceId, $deviceServer, $data = array())
     {
         $device = null;
-        $statsDevice = $this->statsDeviceRepository->findOneBy(array(
+        $_device = $this->deviceRepository->findOneBy(array(
             'deviceType' => $deviceType,
             'deviceId' => $deviceId,
+            'deviceServer' => $deviceServer,
         ));
-        if (is_null($statsDevice)) {
-            $device = new StatsDevice();
-            $device->setDeviceType($deviceType);
-            $device->setDeviceId($deviceId);
-            foreach ($data as $column => $value) {
-                $method = 'set'.ucfirst($column);
-                if (method_exists($device, $method)) {
-                    $device->$method($value);
-                }
+        if (is_null($_device)) {
+            $device = new Device();
+        } else {
+            $device = $_device;
+        }
+        $device->setDeviceType($deviceType);
+        $device->setDeviceId($deviceId);
+        $device->setDeviceServer($deviceServer);
+        foreach ($data as $column => $value) {
+            $method = 'set'.ucfirst($column);
+            if (method_exists($device, $method)) {
+                $device->$method($value);
             }
+        }
 
-            if ($this->validator->validate($device)->count() == 0) {
-                $this->em->persist($device);
-                $this->em->flush($device);
-            }
+        if ($this->validator->validate($device)->count() == 0) {
+            $this->em->persist($device);
+            $this->em->flush($device);
         }
 
         return $device;