浏览代码

Merged in FD3-300 (pull request #48)

FD3-300 soft delete / onu create
Guillermo Espinoza 7 年之前
父节点
当前提交
185bc5e313

+ 14 - 14
composer.json

@@ -128,19 +128,19 @@
         "evence/soft-deleteable-extension-bundle": "^1.3",
         "gedmo/doctrine-extensions": "^2.4",
         "hwi/oauth-bundle": "^0.5.3",
-        "ik/audit-bundle": "v0.0.0",
-        "ik/auth-bundle": "v0.0.0",
-        "ik/base-admin-bundle": "v0.0.0",
-        "ik/device-bundle": "v0.0.0",
-        "ik/extra-data-bundle": "v0.0.0",
-        "ik/leaflet-bundle": "v0.0.0",
-        "ik/map-bundle": "v0.0.0",
-        "ik/migrations-bundle": "v0.0.0",
-        "ik/oauthclient-bundle": "v0.0.0",
-        "ik/owner-voter-bundle": "v0.0.0",
-        "ik/template-bundle": "v0.0.0",
-        "ik/webservice-bundle": "v0.0.0",
-        "ik/workflow-bundle": "v0.0.0",
+        "ik/audit-bundle": "dev-master",
+        "ik/auth-bundle": "dev-master",
+        "ik/base-admin-bundle": "dev-master",
+        "ik/device-bundle": "dev-master",
+        "ik/extra-data-bundle": "dev-master",
+        "ik/leaflet-bundle": "dev-master",
+        "ik/map-bundle": "dev-master",
+        "ik/migrations-bundle": "dev-master",
+        "ik/oauthclient-bundle": "dev-master",
+        "ik/owner-voter-bundle": "dev-master",
+        "ik/template-bundle": "dev-master",
+        "ik/webservice-bundle": "dev-master",
+        "ik/workflow-bundle": "dev-master",
         "incenteev/composer-parameter-handler": "^2.0",
         "jdorn/sql-formatter": "^1.2.17",
         "jms/serializer": "^1.9.0",
@@ -231,4 +231,4 @@
             }
         ]
     }
-}
+}

+ 53 - 40
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "1b744e6ecdf0496d191353cd1b78d710",
+    "content-hash": "c2207b1bcfc0a66d8e38340b4a26fbc6",
     "packages": [
         {
             "name": "behat/transliterator",
@@ -1413,11 +1413,11 @@
         },
         {
             "name": "ik/audit-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/AuditBundle.git",
-                "reference": "cb60c10e8e628c6cfe630672757c2c1c3a1598bc"
+                "reference": "b202b7ac2ba770a72d323bb1fea8291249c09096"
             },
             "require": {
                 "simplethings/entity-audit-bundle": "^1.0"
@@ -1433,15 +1433,15 @@
                 "audit",
                 "bundle"
             ],
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-11-24 15:24:36"
         },
         {
             "name": "ik/auth-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/AuthBundle.git",
-                "reference": "1f4d2d02ed5a18d204dd21fda003eb766c30a03a"
+                "reference": "3dfe0b95b0a2d3003065b2507a9bf581d3b7c214"
             },
             "type": "library",
             "autoload": {
@@ -1456,15 +1456,15 @@
                 "auth",
                 "bundle"
             ],
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-12-05 15:22:24"
         },
         {
             "name": "ik/base-admin-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/BaseAdmin.git",
-                "reference": "a90969607b5a3d97c5bebc8f7dc49eee14ab68a0"
+                "reference": "ce8f0a52e67a26837ed37c3f2d87eee3086e238d"
             },
             "type": "library",
             "autoload": {
@@ -1479,15 +1479,15 @@
                 "bootstrap",
                 "sonata"
             ],
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-12-05 17:21:10"
         },
         {
             "name": "ik/device-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@gogs.infra.flowdat.com:222/VendorSoftwareFlowdat3/DeviceBundle.git",
-                "reference": "1ecb2badd88e7e02ce3a21a12b17ea88557705f8"
+                "reference": "1427ae709813753418663886f8e43167d4d25f4a"
             },
             "type": "library",
             "autoload": {
@@ -1502,15 +1502,15 @@
                 "bundle",
                 "validators"
             ],
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-12-11 15:47:48"
         },
         {
             "name": "ik/extra-data-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/ExtraDataBundle.git",
-                "reference": "b2ea28f40210e2e9d35b5663fe1b07def9ad46e9"
+                "reference": "285c7a279256fc613a0a8e65c6163d5b60361365"
             },
             "type": "library",
             "autoload": {
@@ -1525,15 +1525,15 @@
                 "bundle",
                 "extra-data"
             ],
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-12-11 15:48:57"
         },
         {
             "name": "ik/leaflet-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@gogs.infra.flowdat.com:222/VendorSoftwareFlowdat3/LeafletBundle.git",
-                "reference": "361ba41c689f81923b07c7a1b03c728c493e05ed"
+                "reference": "f62c3ce0a0398df29743c1a946f284ef4f35678d"
             },
             "require": {
                 "ext-curl": "*",
@@ -1546,15 +1546,15 @@
                 }
             },
             "description": "The Flowdat3 Leaflet Resource",
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-12-11 14:10:00"
         },
         {
             "name": "ik/map-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@gogs.infra.flowdat.com:222/VendorSoftwareFlowdat3/MapBundle.git",
-                "reference": "eadc82819f345219568d8404df28060371b98caa"
+                "reference": "9f244d40a1d7365b60f69f72a45a9e748ec8da16"
             },
             "type": "library",
             "autoload": {
@@ -1569,15 +1569,15 @@
                 "bootstrap",
                 "sonata"
             ],
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-11-16 14:10:01"
         },
         {
             "name": "ik/migrations-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@bitbucket.org/ikflowdat/migrations.git",
-                "reference": "cf4e6c2ec704f5395c6e2e36e75c81bc29d3b935"
+                "reference": "1fb5025b4a8030528d2194a666fc172b62fc34ba"
             },
             "type": "library",
             "autoload": {
@@ -1592,15 +1592,15 @@
                 "bundle",
                 "migrations"
             ],
-            "time": "2017-11-24T19:02:35+00:00"
+            "time": "2017-12-06 17:56:15"
         },
         {
             "name": "ik/oauthclient-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/BaseOAuthClientBundle.git",
-                "reference": "4eb6a8253bf55df80dfd6eda577b52a0a1a54d35"
+                "reference": "7f9343ed5988f10b7be0c7bb2d2cd1cc75275553"
             },
             "require": {
                 "ext-curl": "*",
@@ -1619,15 +1619,15 @@
                 "bundle",
                 "oauth"
             ],
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-10-11 14:15:38"
         },
         {
             "name": "ik/owner-voter-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/OwnerVoter.git",
-                "reference": "949922602134f60491f25e326ad2af0a345aa17e"
+                "reference": "9ae7b65c59f9cb2216b422744a5e1ffbe429ef29"
             },
             "type": "library",
             "autoload": {
@@ -1642,15 +1642,15 @@
                 "bundle",
                 "owner-voter"
             ],
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-06-12 15:49:24"
         },
         {
             "name": "ik/template-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/TemplateBundle.git",
-                "reference": "2d293680b538033a772be526c01bc1b1250ea012"
+                "reference": "63deb64e5ccb88acede62b5aae7c1231353b99df"
             },
             "require": {
                 "ik/base-admin-bundle": "*"
@@ -1668,15 +1668,15 @@
                 "bundle",
                 "template"
             ],
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-08-02 18:42:10"
         },
         {
             "name": "ik/webservice-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/Webservice.git",
-                "reference": "f61acabf9c416f44e18439d73a1aaefd519c3453"
+                "reference": "b8c87a6793040baf025a96ee9ee3408b0f6cec3d"
             },
             "require": {
                 "ext-curl": "*",
@@ -1689,15 +1689,15 @@
                 }
             },
             "description": "The Flowdat3 Webservice Rest",
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-11-29 14:00:21"
         },
         {
             "name": "ik/workflow-bundle",
-            "version": "v0.0.0",
+            "version": "dev-master",
             "source": {
                 "type": "git",
                 "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/WorkflowBundle.git",
-                "reference": "de69e7e149b24928582658e4155cafde7164c1a2"
+                "reference": "dc130dd1b6bd8f609ade3b324798c70e20c5a977"
             },
             "require": {
                 "php-amqplib/rabbitmq-bundle": "^1.12"
@@ -1727,7 +1727,7 @@
                 "bundle",
                 "workflow"
             ],
-            "time": "2017-11-24T16:24:40+00:00"
+            "time": "2017-11-09 15:34:00"
         },
         {
             "name": "incenteev/composer-parameter-handler",
@@ -6168,6 +6168,19 @@
     "aliases": [],
     "minimum-stability": "stable",
     "stability-flags": {
+        "ik/audit-bundle": 20,
+        "ik/auth-bundle": 20,
+        "ik/base-admin-bundle": 20,
+        "ik/device-bundle": 20,
+        "ik/extra-data-bundle": 20,
+        "ik/leaflet-bundle": 20,
+        "ik/map-bundle": 20,
+        "ik/migrations-bundle": 20,
+        "ik/oauthclient-bundle": 20,
+        "ik/owner-voter-bundle": 20,
+        "ik/template-bundle": 20,
+        "ik/webservice-bundle": 20,
+        "ik/workflow-bundle": 20,
         "sonata-project/admin-bundle": 20,
         "voryx/restgeneratorbundle": 20
     },

+ 8 - 23
src/FTTHBundle/Admin/ONUAdmin.php

@@ -83,14 +83,14 @@ class ONUAdmin extends WorkflowBaseAdmin
             ->setHelps(array(
                 'nap' => $this->trans("helps.check_address")));
 
-        
+
         /*
          *  Si vienen parámetros por GET de olt=id o psn=string seteamos los campos
          */
         $formMapper->getFormBuilder()->addEventListener(FormEvents::PRE_SET_DATA,
             function (FormEvent $event) use ($formMapper) {
                 $form = $event->getForm();
-                
+
                 $olt = $this->getRequest()->query->get('olt');
                 if(!is_null($olt)) {
                     $em = $this->get("doctrine.orm.entity_manager");
@@ -102,7 +102,7 @@ class ONUAdmin extends WorkflowBaseAdmin
 
                     $form->add('olt', 'entity', array('class' => 'FTTHBundle:OLT', 'query_builder' => $query_olt));
                 }
-                
+
                 $ponSerialNumber = $this->getRequest()->query->get('psn');
                 if ($ponSerialNumber) {
                     $form->add('ponSerialNumber', null, array(
@@ -110,7 +110,7 @@ class ONUAdmin extends WorkflowBaseAdmin
                     ));
                 }
             }
-        );        
+        );
     }
 
     /**
@@ -150,16 +150,16 @@ class ONUAdmin extends WorkflowBaseAdmin
     /**
      * @param string $action
      * @param Object $object
-     * 
+     *
      * @return array
      */
     public function configureActionButtons($action, $object = null)
     {
         $actions = parent::configureActionButtons($action, $object);
-        
+
         if($action == "list") {
             $actions['import_onu'] = array('template' => 'FTTHBundle:ONU:import_button.html.twig');
-        } 
+        }
 
         return $actions;
     }
@@ -169,20 +169,5 @@ class ONUAdmin extends WorkflowBaseAdmin
         $this->setTemplate('create', 'FTTHBundle:ONU:form.html.twig');
         $this->setTemplate('edit', 'FTTHBundle:ONU:form.html.twig');
     }
-
-    public function create($object){
-	    $em = $this->get("doctrine.orm.entity_manager");
-	    $em->getFilters()->disable('soft_deleteable');
-	    $alt = $em->getRepository("FTTHBundle:ONU")->findOneBy(array('ponSerialNumber' => $object->getPonSerialNumber()));
-	    if($alt and $alt->isDeleted()){
-		    $object->setId($alt->getId());
-		    $object->setDeletedAt(NULL);
-		    $object->setCreated(new \DateTime());
-		    $object->setUpdated(new \DateTime());
-		    $object = $em->merge($object);
-	    }
-
-	    $em->getFilters()->enable('soft_deleteable');
-	    return parent::create($object);
-    }
+    
 }

+ 31 - 0
src/FTTHBundle/EventListener/ONUSoftDeleteListener.php

@@ -0,0 +1,31 @@
+<?php
+
+namespace FTTHBundle\EventListener;
+
+use Base\AdminBundle\EventListener\SoftDeleteListener;
+use FTTHBundle\Entity\ONU;
+
+class ONUSoftDeleteListener extends SoftDeleteListener
+{
+
+    /**
+    * @return boolean
+    */
+    public function checkInstanceOf($entity)
+    {
+        return $entity instanceof ONU;
+    }
+
+    /**
+    * @param Object $entity
+
+    * @return Object
+    */
+    public function getEntity($entity)
+    {
+        return $this->em->getRepository(ONU::class)->findOneBy([
+            'ponSerialNumber' => $entity->getPonSerialNumber()
+        ]);
+    }
+
+}

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

@@ -12,7 +12,7 @@ services:
         arguments: [~, FTTHBundle\Entity\OLT, WorkflowBundle:CRUD]
         tags:
             - { name: sonata.admin, manager_type: orm, group: FTTH, label: OLT, label_catalogue: FTTHBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
-        calls:    
+        calls:
             - [setTranslationDomain, [FTTHBundle]]
 
     ftth.admin.profile:
@@ -20,7 +20,7 @@ services:
         arguments: [~, FTTHBundle\Entity\Profile, BaseAdminBundle:CRUD]
         tags:
             - { name: sonata.admin, manager_type: orm, group: FTTH, label: Profile, label_catalogue: FTTHBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
-        calls:    
+        calls:
             - [setTranslationDomain, [FTTHBundle]]
 
     ftth.admin.nap:
@@ -28,7 +28,7 @@ services:
         arguments: [~, FTTHBundle\Entity\NAP, BaseAdminBundle:CRUD]
         tags:
             - { name: sonata.admin, manager_type: orm, group: FTTH, label: NAP, label_catalogue: FTTHBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
-        calls:    
+        calls:
             - [setTranslationDomain, [FTTHBundle]]
 
     ftth.admin.onu_model:
@@ -66,3 +66,8 @@ services:
         tags:
             - { name: kernel.event_listener, event: sonata.admin.event.configure.datagrid, method: configureDatagridFilters }
         arguments: ["@service_container"]
+
+    ftth.onu_soft_delete.listener:
+        class: FTTHBundle\EventListener\ONUSoftDeleteListener
+        tags:
+            - { name: doctrine.event_listener, event: prePersist }