Bläddra i källkod

Merged in FD3-298 (pull request #42)

FD3-298
Luciano Andrade 7 år sedan
förälder
incheckning
6a9fe3414f
5 ändrade filer med 118 tillägg och 17 borttagningar
  1. 7 1
      app/config/config.yml
  2. 5 3
      composer.json
  3. 58 11
      composer.lock
  4. 16 0
      src/FTTHBundle/Admin/ONUAdmin.php
  5. 32 2
      src/FTTHBundle/Entity/ONU.php

+ 7 - 1
app/config/config.yml

@@ -86,12 +86,18 @@ doctrine:
         naming_strategy: doctrine.orm.naming_strategy.underscore
         auto_mapping: true
         filters:
-            tenancy_filter: Base\AdminBundle\Filter\TenancyFilter
+            soft_deleteable:
+              class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
+              enabled: true
+            tenancy_filter:
+              class: Base\AdminBundle\Filter\TenancyFilter
+              enabled: true
 
 stof_doctrine_extensions:
     orm:
         default:
             timestampable: true
+            softdeleteable: true
 
 # Swiftmailer Configuration
 swiftmailer:

+ 5 - 3
composer.json

@@ -124,6 +124,9 @@
         "doctrine/doctrine-migrations-bundle": "^1.2",
         "doctrine/instantiator": "^1.0.5",
         "doctrine/orm": "^2.5",
+        "evence/soft-deleteable-extension-bundle": "^1.3",
+        "gedmo/doctrine-extensions": "^2.4",
+        "hwi/oauth-bundle": "^0.5.3",
         "ik/audit-bundle": "dev-master",
         "ik/auth-bundle": "dev-master",
         "ik/base-admin-bundle": "dev-master",
@@ -133,15 +136,14 @@
         "ik/map-bundle": "dev-master",
         "ik/migrations-bundle": "dev-master",
         "ik/oauthclient-bundle": "dev-master",
-        "ik/webservice-bundle": "dev-master",
-        "hwi/oauth-bundle": "^0.5.3",
         "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",
         "jms/serializer-bundle": "^1.5.0",
-        "jdorn/sql-formatter": "^1.2.17",
         "php-amqplib/rabbitmq-bundle": "^1.12",
         "samsonasik/package-versions": "1.1.0",
         "sensio/distribution-bundle": "^5.0.21",

+ 58 - 11
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": "49c90dc355b5613a1df168bfdfa84aaa",
+    "content-hash": "fa1e6abe1bbacbd7a328b4b4d595dfa9",
     "packages": [
         {
             "name": "behat/transliterator",
@@ -996,6 +996,52 @@
             ],
             "time": "2015-11-23T12:44:25+00:00"
         },
+        {
+            "name": "evence/soft-deleteable-extension-bundle",
+            "version": "1.3.0",
+            "target-dir": "Evence/Bundle/SoftDeleteableExtensionBundle",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/E-vence/SoftDeleteableListenerExtensionBundle.git",
+                "reference": "f3e8496f0d17d33174e3cd091fb064e5ab7a9ca7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/E-vence/SoftDeleteableListenerExtensionBundle/zipball/f3e8496f0d17d33174e3cd091fb064e5ab7a9ca7",
+                "reference": "f3e8496f0d17d33174e3cd091fb064e5ab7a9ca7",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "symfony/framework-bundle": "~2.0 || ~3.0"
+            },
+            "require-dev": {
+                "symfony/console": "~2.0 || ~3.0"
+            },
+            "type": "symfony-bundle",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "0.1-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Evence\\Bundle\\SoftDeleteableExtensionBundle": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "authors": [
+                {
+                    "name": "Ruben Harms",
+                    "homepage": "http://www.rubenharms.nl/"
+                }
+            ],
+            "description": "Provides exta functions to the soft deleteable listener of gedmo",
+            "keywords": [
+                "soft-deleteable"
+            ],
+            "time": "2017-09-29T11:33:56+00:00"
+        },
         {
             "name": "fig/link-util",
             "version": "1.0.0",
@@ -1138,17 +1184,17 @@
         },
         {
             "name": "gedmo/doctrine-extensions",
-            "version": "v2.3.10",
+            "version": "v2.4.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Atlantic18/DoctrineExtensions.git",
-                "reference": "4e9bbd54ebb22bb004b2ec71b1b0ce3ed5b992d0"
+                "reference": "08af8a990b683958651bc60f469ed95a35dbef93"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://satis.infra.flowdat.com/dist/gedmo/doctrine-extensions/gedmo-doctrine-extensions-4e9bbd54ebb22bb004b2ec71b1b0ce3ed5b992d0-zip-069756.zip",
-                "reference": "4e9bbd54ebb22bb004b2ec71b1b0ce3ed5b992d0",
-                "shasum": "5cf846df7493698ad046bb4f0856836ab5e08213"
+                "url": "https://satis.infra.flowdat.com/dist/gedmo/doctrine-extensions/gedmo-doctrine-extensions-08af8a990b683958651bc60f469ed95a35dbef93-zip-94cbc9.zip",
+                "reference": "08af8a990b683958651bc60f469ed95a35dbef93",
+                "shasum": "cafe72c0d8d25c33d7471117926425d650ee6835"
             },
             "require": {
                 "behat/transliterator": "~1.0",
@@ -1156,11 +1202,12 @@
                 "php": ">=5.3.2"
             },
             "require-dev": {
-                "doctrine/mongodb-odm": ">=1.0.0-BETA11",
-                "doctrine/orm": "~2.4",
+                "doctrine/common": ">=2.5.0-BETA1",
+                "doctrine/mongodb-odm": ">=1.0.0-BETA12",
+                "doctrine/orm": ">=2.5.0-RC1",
                 "phpunit/phpunit": "~4.4",
                 "phpunit/phpunit-mock-objects": "~2.3",
-                "symfony/yaml": "~2.3"
+                "symfony/yaml": "~2.6"
             },
             "suggest": {
                 "doctrine/mongodb-odm": "to use the extensions with the MongoDB ODM",
@@ -1212,7 +1259,7 @@
                 "tree",
                 "uploadable"
             ],
-            "time": "2015-01-21T20:55:10+00:00"
+            "time": "2015-03-26T20:58:50+00:00"
         },
         {
             "name": "hwi/oauth-bundle",
@@ -6130,9 +6177,9 @@
         "ik/map-bundle": 20,
         "ik/migrations-bundle": 20,
         "ik/oauthclient-bundle": 20,
-        "ik/webservice-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

+ 16 - 0
src/FTTHBundle/Admin/ONUAdmin.php

@@ -169,4 +169,20 @@ 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);
+    }
 }

+ 32 - 2
src/FTTHBundle/Entity/ONU.php

@@ -6,7 +6,6 @@ use Base\AdminBundle\Traits\TenancyIdTrait;
 use Base\AdminBundle\Traits\TenancyIdTraitInterface;
 use Doctrine\ORM\Mapping as ORM;
 use ExtraDataBundle\Entity\Traits\ExtraDataTrait;
-use Gedmo\Mapping\Annotation as Gedmo;
 use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
 use Symfony\Component\Validator\Constraints as Assert;
 use Symfony\Component\Workflow\Exception\ExceptionInterface;
@@ -17,6 +16,8 @@ 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;
 
 /**
  * ONU
@@ -24,6 +25,7 @@ use WorkflowBundle\Entity\Traits\WorkflowTrait;
  * @ORM\Entity
  * @UniqueEntity(fields={"ponSerialNumber", "tenancyId"}, message="errors.duplicate_key")
  * @ORM\Table(uniqueConstraints={@ORM\UniqueConstraint(name="unique_idx", columns={"pon_serial_number", "tenancy_id"})})
+ * @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=true)
  *
  * @ValidatorAssert\Device
  */
@@ -34,6 +36,7 @@ class ONU implements DeviceInterface, TenancyIdTraitInterface, LocationInterface
     use TenancyIdTrait;
     use LocationTrait;
     use WorkflowTrait;
+    use SoftDeleteable;
 
     /**
      * @var int
@@ -149,7 +152,6 @@ class ONU implements DeviceInterface, TenancyIdTraitInterface, LocationInterface
      */
     private $position = 0;
 
-
     /**
      * @return string
      */
@@ -168,6 +170,20 @@ class ONU implements DeviceInterface, TenancyIdTraitInterface, LocationInterface
         return $this->id;
     }
 
+    /**
+     * Get id
+     *
+     * @param int
+     *
+     * @return ONU
+     */
+    public function setId($id)
+    {
+        $this->id = $id;
+
+	return $this;
+    }
+
     /**
      * Set ip
      *
@@ -298,6 +314,20 @@ class ONU implements DeviceInterface, TenancyIdTraitInterface, LocationInterface
         return $this->created;
     }
 
+    /**
+     * Set created
+     *
+     * @param \DateTime
+     *
+     * @return ONU
+     */
+    public function setCreated($d)
+    {
+        $this->created = $d;
+	return $this;
+    }
+
+
     /**
      * Get updated
      *