瀏覽代碼

SofDelete

Maxi Schvindt 7 年之前
父節點
當前提交
8c098469db

+ 14 - 1
src/FTTHBundle/Entity/OLT.php

@@ -16,20 +16,25 @@ use MapBundle\Entity\Interfaces\LocationInterface;
 use MapBundle\Entity\Traits\LocationTrait;
 use WorkflowBundle\Entity\Interfaces\WorkflowInterface;
 use WorkflowBundle\Entity\Traits\WorkflowTrait;
+use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity as SoftDeleteable;
+use Gedmo\Mapping\Annotation as Gedmo;
+use Base\AdminBundle\Interfaces\SoftDeleteInterface;
 
 /**
  * @ORM\Entity
  * @UniqueEntity("ip")
+ * @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=true)
  *
  * @ValidatorAssert\Device
  */
-class OLT implements DeviceInterface, TenancyIdTraitInterface, LocationInterface, WorkflowInterface
+class OLT implements DeviceInterface, TenancyIdTraitInterface, LocationInterface, WorkflowInterface, SoftDeleteInterface
 {
 
     use ExtraDataTrait;
     use TenancyIdTrait;
     use LocationTrait;
     use WorkflowTrait;
+    use SoftDeleteable;
 
     /**
      * @var bigint $id
@@ -488,5 +493,13 @@ class OLT implements DeviceInterface, TenancyIdTraitInterface, LocationInterface
     {
         return $this->libraryVersion;
     }
+    
+    /**
+    * @return array
+    */
+    public function getSoftDeleteCriteria() 
+    {
+        return array('ip' => $this->ip);
+    }
 
 }

+ 10 - 1
src/FTTHBundle/Entity/ONU.php

@@ -18,6 +18,7 @@ use WorkflowBundle\Entity\Interfaces\WorkflowInterface;
 use WorkflowBundle\Entity\Traits\WorkflowTrait;
 use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity as SoftDeleteable;
 use Gedmo\Mapping\Annotation as Gedmo;
+use Base\AdminBundle\Interfaces\SoftDeleteInterface;
 
 /**
  * ONU
@@ -29,7 +30,7 @@ use Gedmo\Mapping\Annotation as Gedmo;
  *
  * @ValidatorAssert\Device
  */
-class ONU implements DeviceInterface, TenancyIdTraitInterface, LocationInterface, WorkflowInterface
+class ONU implements DeviceInterface, TenancyIdTraitInterface, LocationInterface, WorkflowInterface, SoftDeleteInterface
 {
 
     use ExtraDataTrait;
@@ -562,4 +563,12 @@ class ONU implements DeviceInterface, TenancyIdTraitInterface, LocationInterface
         return $deviceData;
     }
 
+    /**
+     * @return array
+     */
+    public function getSoftDeleteCriteria() 
+    {
+        return array('ponSerialNumber' => $this->ponSerialNumber);
+    }
+
 }

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

@@ -1,31 +0,0 @@
-<?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()
-        ]);
-    }
-
-}

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

@@ -67,11 +67,6 @@ services:
             - { 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 }
-
     ftth.nap.subscriber:
         class: FTTHBundle\EventListener\NAPAddressSubscriber
         tags: