浏览代码

Merged in client-choice (pull request #1)

Client choice en formulario y templates para vista list y show

Approved-by: Maximiliano Schvindt
Guillermo Espinoza 8 年之前
父节点
当前提交
03d17d2484

+ 5 - 0
.drone.yml

@@ -17,6 +17,11 @@ pipeline:
       - echo 'client = Flowdat3-FTTH-Drone-Test' | tee /etc/flowdat.conf
       - echo 'date.timezone="America/Argentina/Buenos_Aires"' >> /etc/php5/cli/php.ini
       - yes | mysqladmin -h 127.0.0.1 create flowdat_ftth
+      - mkdir -p /root/.ssh/
+      - ssh-keyscan -p222 200.50.168.30 >> ~/.ssh/known_hosts
+      - ssh-keyscan -p222 infra.flowdat.com >> ~/.ssh/known_hosts
+      - chmod 0400 keys/bitbucket.id_rsa
+      - eval $(ssh-agent); ssh-add keys/bitbucket.id_rsa
       - composer install
       - chmod 0777 -R var/logs var/cache var/sessions
       - php bin/console doctrine:schema:update --force -vvv --env=test

+ 1 - 0
app/AppKernel.php

@@ -26,6 +26,7 @@ class AppKernel extends Kernel
             new FOS\RestBundle\FOSRestBundle(),
             new JMS\SerializerBundle\JMSSerializerBundle($this),
             new Nelmio\CorsBundle\NelmioCorsBundle(),
+            new Base\AdminBundle\BaseAdminBundle()
         ];
 
         if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {

+ 5 - 34
app/config/config.yml

@@ -2,9 +2,10 @@ imports:
     - { resource: parameters.yml }
     - { resource: security.yml }
     - { resource: services.yml }
+    - { resource: rest.yml }
+    - { resource: url_webservice.yml }
     - { resource: "@FTTHBundle/Resources/config/services.yml" }
     - { resource: "@WebserviceBundle/Resources/config/services.yml" }
-    - { resource: url_webservice.yml }
 
 # Put parameters here that don't need to change on each machine where the app is deployed
 # http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
@@ -19,7 +20,6 @@ framework:
         resource: "%kernel.root_dir%/config/routing.yml"
         strict_requirements: ~
     form:            ~
-    csrf_protection: false #only use for public API
     validation:      { enable_annotations: true }
     #serializer:      { enable_annotations: true }
     templating:
@@ -41,6 +41,8 @@ framework:
 twig:
     debug:            "%kernel.debug%"
     strict_variables: "%kernel.debug%"
+    form_themes:
+        - 'WebserviceBundle:Type:remote_client_widget.html.twig'
 
 # Doctrine Configuration
 doctrine:
@@ -76,35 +78,4 @@ sonata_block:
     default_contexts: [sonata_page_bundle]
     blocks:
         sonata.admin.block.admin_list:
-            contexts:   [admin]
-
-fos_rest:
-    routing_loader:
-        default_format: json
-    param_fetcher_listener: true
-    body_listener: true
-    #disable_csrf_role: ROLE_USER
-    body_converter:
-        enabled: true
-    view:
-        view_response_listener: force
-
-nelmio_cors:
-    defaults:
-        allow_credentials: false
-        allow_origin: []
-        allow_headers: []
-        allow_methods: []
-        expose_headers: []
-        max_age: 0
-    paths:
-        '^/api/':
-            allow_origin: ['*']
-            allow_headers: ['*']
-            allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
-            max_age: 3600
-
-sensio_framework_extra:
-    request: { converters: true }
-    view:    { annotations: false }
-    router:  { annotations: true }            
+            contexts:   [admin]

+ 35 - 0
app/config/rest.yml

@@ -0,0 +1,35 @@
+framework:
+    csrf_protection: false #only use for public API
+
+fos_rest:
+    routing_loader:
+        default_format: json
+    param_fetcher_listener: true
+    body_listener: true
+    #disable_csrf_role: ROLE_USER
+    body_converter:
+        enabled: true
+    view:
+        view_response_listener: force
+    serializer:
+        serialize_null: true
+
+nelmio_cors:
+    defaults:
+        allow_credentials: false
+        allow_origin: []
+        allow_headers: []
+        allow_methods: []
+        expose_headers: []
+        max_age: 0
+    paths:
+        '^/api/':
+            allow_origin: ['*']
+            allow_headers: ['*']
+            allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
+            max_age: 3600
+
+sensio_framework_extra:
+    request: { converters: true }
+    view:    { annotations: false }
+    router:  { annotations: true }

+ 1 - 1
app/config/url_webservice.yml

@@ -1,2 +1,2 @@
 parameters:
-    client: 'http://200.50.175.17/base/app_dev.php/api/clients.json'
+    client: 'http://200.50.168.111/base/app_dev.php/api/clients.json'

+ 22 - 1
composer.json

@@ -16,6 +16,25 @@
             "Tests\\": "tests/"
         }
     },
+    "repositories": [
+        {
+            "type": "vcs",
+            "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/BaseAdmin.git",
+            "options": {
+                    "local_pk": "./keys/bitbucket.id_rsa"
+            }
+        },
+        {
+            "type": "vcs",
+            "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/Webservice.git",
+            "options": {
+                    "local_pk": "./keys/bitbucket.id_rsa"
+            }
+        }
+    ],
+    "config":{
+        "secure-http": false
+    },
     "require": {
         "php": ">=5.5.9",
         "symfony/symfony": "3.2.*",
@@ -33,7 +52,9 @@
         "jms/serializer-bundle": "^1.1",
         "phpunit/phpunit": "5.5.*",
         "stof/doctrine-extensions-bundle": "^1.2",
-        "voryx/restgeneratorbundle": "dev-master"
+        "voryx/restgeneratorbundle": "dev-master",
+        "base-admin": "dev-master",
+        "webservice": "dev-master"
     },
     "require-dev": {
         "sensio/generator-bundle": "^3.0",

+ 45 - 3
composer.lock

@@ -4,9 +4,32 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "1725e827a2df18634794ed9c881d47bf",
-    "content-hash": "af36e5d568b3c12c256fd4c5e318fe18",
+    "hash": "d473b494d2ccfdf5e71166ef0c5d810e",
+    "content-hash": "7b318265b54fca97b4f497cbdc157b26",
     "packages": [
+        {
+            "name": "base-admin",
+            "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/BaseAdmin.git",
+                "reference": "854e109ca5eb21a7ae14b1e6ccef72f1e4997681"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Base\\AdminBundle\\": ""
+                }
+            },
+            "description": "The Flowdat3 Symfony Admin Generator",
+            "keywords": [
+                "Admin Generator",
+                "admin",
+                "bootstrap",
+                "sonata"
+            ],
+            "time": "2017-02-20 18:48:16"
+        },
         {
             "name": "behat/transliterator",
             "version": "v1.1.0",
@@ -4682,6 +4705,23 @@
             ],
             "time": "2016-11-23 20:04:58"
         },
+        {
+            "name": "webservice",
+            "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "ssh://git@200.50.168.30:222/VendorSoftwareFlowdat3/Webservice.git",
+                "reference": "f594319cada7f9cb8c067ab2c4f35669ba7bdf9f"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "WebserviceBundle\\": ""
+                }
+            },
+            "description": "The Flowdat3 Webservice Rest",
+            "time": "2017-02-22 13:29:05"
+        },
         {
             "name": "willdurand/jsonp-callback-validator",
             "version": "v1.1.0",
@@ -4836,7 +4876,9 @@
     "aliases": [],
     "minimum-stability": "stable",
     "stability-flags": {
-        "voryx/restgeneratorbundle": 20
+        "voryx/restgeneratorbundle": 20,
+        "base-admin": 20,
+        "webservice": 20
     },
     "prefer-stable": false,
     "prefer-lowest": false,

+ 27 - 0
keys/bitbucket.id_rsa

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAsCo4Xa/fLaryiZt6igRK1IPNJsKeDLWBN6CWrv3TQ2iMcwE1
+zhTTX115N+KngVN8p1v5VrSMHKpvyXQDZPG/FJnWm5ry75qSYTmEtY8nfRsGAbwT
+i4swY+4jqrH1RRjbuVMsXPGjFX34SZTTJEl8ouVAFy/7HR+ODUe2+enWVnaouhVs
+Xj+bW2u7/dV1kZctFa5g5iV3hqGH32dBME5ztg4Fh7fAxkRTiJl+NBI7/LIdv9dl
+qmtDAdNdRqaI1dBpy8sHyZhRfjPeVbhdKsjE5IBhDLlYzyxK5FC41us08VCdq+M1
+1qVzIVM61PBosW5NfwlrRgLDPEXkazUdhJO6YwIDAQABAoIBAFEf4D0klH4PTwmX
+k+Ki/2LGH19OGEJ6Azt+tGV5diSArMz5LbHtXTl5bi0SL1ka/TiE3lnTYwKAamI3
+DqkZuojeHzohLOayI96qAjcp6WFvZGDAH7APNQWP0NT2hqB/RhAeATv7+sIW9JPN
++T2oqcDKGa2T5uwOb/glolmMGaxOzNfAFAgnD7p7cnR0yijW5t3bc4q0sOFu/H3N
+jYsAqvMu6Nkpt9hjlu42x5Muwj9YeKwpZoE1sno62JeQFZo7nO7DrOrE7DOENoWV
+PMDxs8Hz0SRQlZcJn2I/W9wX8A8gCAWGhbAtUGQkS8gCaMp0dOcxoV3EttriQgtU
+X1oUwIECgYEA2Vge4E8E53BzLGTk8sozn1qteYn3cLGgJgC78MEzZN/G57DxVbC9
+ntlSlYaYLlaPlSlNzZyG0s3UhpPY7YgP9srpohfPyXvb0ycfsGYMOcRNjVwdi2ap
+dPiG+p9vLSG3raNoeTxDEtjFZz1EM1rQECx2N40JwIuzeM2g+kE0JjMCgYEAz38r
+NTs1wASG7Bc7geIDxb34PWM8Nnw/DN57ceJP+Miwq/hYAJg6eK57ar9n44Y3xf7a
+mHkkgBU1vzuIyYfC5jVut6XkbialLsJUHfCNi3fPDBR7sEy6soiN34GoGp2vnCVD
+pDf2aCSMeFGfgwe4imFHbqE0R87cnet+q+CjCxECgYA8EbfO5OgFEzYxwdzpIWtt
+EoG5gqEpu134wuEupCcRLSvrIyNAPK3btlK10tJClFfwsM65EhbNMmgXncspsx4+
+Zkx2KUCbfij+TeTbOwkL+i448ImV2pThKEMeB2yRu6zpR617PGWJUvIUG4G689Fn
+dvJhXhCg77t1mtdv8w93swKBgQCIxor0y9LigBlwBuBy/Uj/T/oSfRdz0vK8yOsW
+ZtfQZnoO4eUgfzgL1PgFpaYVlKOvIA938mLdCx4isFu6fIM8vHv/EptBALhh2jcY
+hTjIdnFExTvDOtDWXq0mZ5En+kmH5Ahyd3E1tOHjbep3tN8wWG99vUV5ECLc9h7J
+rYnMAQKBgQDQ/JiBT7ygfzAblxPnq5Dnr52C3CFTE57GNA8FIEx+On6FdtVDRM0g
+cNjoc2e+2MfbaJXFAuMvXDvzb2qxrHgf2TosxeuPTg79iYOfWMU8G62i/v0wPr1M
+0Cj2hszJg4H0dMQPS0kDmO6mZmt6FB4E2gItmeBlTGfMwdJpaQC4rw==
+-----END RSA PRIVATE KEY-----

+ 1 - 0
keys/bitbucket.id_rsa.pub

@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwKjhdr98tqvKJm3qKBErUg80mwp4MtYE3oJau/dNDaIxzATXOFNNfXXk34qeBU3ynW/lWtIwcqm/JdANk8b8UmdabmvLvmpJhOYS1jyd9GwYBvBOLizBj7iOqsfVFGNu5Uyxc8aMVffhJlNMkSXyi5UAXL/sdH44NR7b56dZWdqi6FWxeP5tba7v91XWRly0VrmDmJXeGoYffZ0EwTnO2DgWHt8DGRFOImX40Ejv8sh2/12Wqa0MB011GpojV0GnLywfJmFF+M95VuF0qyMTkgGEMuVjPLErkULjW6zTxUJ2r4zXWpXMhUzrU8Gixbk1/CWtGAsM8ReRrNR2Ek7pj flowdat@bitbucket

+ 4 - 9
src/FTTHBundle/Admin/ONUAdmin.php

@@ -2,19 +2,15 @@
 
 namespace FTTHBundle\Admin;
 
-use Sonata\AdminBundle\Admin\AbstractAdmin;
+use Base\AdminBundle\Admin\BaseAdmin;
 use Sonata\AdminBundle\Datagrid\DatagridMapper;
 use Sonata\AdminBundle\Datagrid\ListMapper;
 use Sonata\AdminBundle\Form\FormMapper;
 use Sonata\AdminBundle\Show\ShowMapper;
 
-class ONUAdmin extends AbstractAdmin
+class ONUAdmin extends BaseAdmin
 {
 
-    protected $baseRoutePattern = "onu";
-
-    protected $baseRouteName = "onu";
-
     /**
      * @param DatagridMapper $datagridMapper
      */
@@ -61,9 +57,7 @@ class ONUAdmin extends AbstractAdmin
             ->add('mac')
             ->add('serialNumber')
             ->add('ponSerialNumber')
-            ->add('clientId', 'choice', array(
-                'choices' => $this->configurationPool->getContainer()->get('webservice')->getChoices('client')
-            ))
+            ->add('clientId')
         ;
     }
 
@@ -81,4 +75,5 @@ class ONUAdmin extends AbstractAdmin
             ->add('clientId')
         ;
     }
+
 }

+ 7 - 53
src/FTTHBundle/Controller/ONURESTController.php

@@ -4,72 +4,22 @@ namespace FTTHBundle\Controller;
 
 use FTTHBundle\Entity\ONU;
 use FTTHBundle\Form\ONUType;
-
-use FOS\RestBundle\Controller\Annotations\QueryParam;
 use FOS\RestBundle\Controller\Annotations\RouteResource;
 use FOS\RestBundle\Controller\Annotations\View;
-use FOS\RestBundle\Request\ParamFetcherInterface;
 use FOS\RestBundle\Util\Codes;
 use FOS\RestBundle\View\View as FOSView;
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
-use Symfony\Bundle\FrameworkBundle\Controller\Controller;
-use Symfony\Component\Form\Form;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
-
-use Voryx\RESTGeneratorBundle\Controller\VoryxController;
+use WebserviceBundle\Controller\RESTController;
 
 /**
  * ONU controller.
  * @RouteResource("ONU")
  */
-class ONURESTController extends VoryxController
+class ONURESTController extends RESTController
 {
-    /**
-     * Get a ONU entity
-     *
-     * @View(serializerEnableMaxDepthChecks=true)
-     *
-     * @return Response
-     *
-     */
-    public function getAction(ONU $entity)
-    {
-        return $entity;
-    }
-    /**
-     * Get all ONU entities.
-     *
-     * @View(serializerEnableMaxDepthChecks=true)
-     *
-     * @param ParamFetcherInterface $paramFetcher
-     *
-     * @return Response
-     *
-     * @QueryParam(name="offset", requirements="\d+", nullable=true, description="Offset from which to start listing notes.")
-     * @QueryParam(name="limit", requirements="\d+", default="20", description="How many notes to return.")
-     * @QueryParam(name="order_by", nullable=true, array=true, description="Order by fields. Must be an array ie. &order_by[name]=ASC&order_by[description]=DESC")
-     * @QueryParam(name="filters", nullable=true, array=true, description="Filter by fields. Must be an array ie. &filters[id]=3")
-     */
-    public function cgetAction(ParamFetcherInterface $paramFetcher)
-    {
-        try {
-            $offset = $paramFetcher->get('offset');
-            $limit = $paramFetcher->get('limit');
-            $order_by = $paramFetcher->get('order_by');
-            $filters = !is_null($paramFetcher->get('filters')) ? $paramFetcher->get('filters') : array();
-
-            $em = $this->getDoctrine()->getManager();
-            $entities = $em->getRepository('FTTHBundle:ONU')->findBy($filters, $order_by, $limit, $offset);
-            if ($entities) {
-                return $entities;
-            }
+    var $repository = 'FTTHBundle:ONU';
 
-            return FOSView::create('Not Found', Codes::HTTP_NO_CONTENT);
-        } catch (\Exception $e) {
-            return FOSView::create($e->getMessage(), Codes::HTTP_INTERNAL_SERVER_ERROR);
-        }
-    }
     /**
      * Create a ONU entity.
      *
@@ -97,6 +47,7 @@ class ONURESTController extends VoryxController
 
         return FOSView::create(array('errors' => $form->getErrors()), Codes::HTTP_INTERNAL_SERVER_ERROR);
     }
+
     /**
      * Update a ONU entity.
      *
@@ -126,6 +77,7 @@ class ONURESTController extends VoryxController
             return FOSView::create($e->getMessage(), Codes::HTTP_INTERNAL_SERVER_ERROR);
         }
     }
+
     /**
      * Partial Update to a ONU entity.
      *
@@ -140,6 +92,7 @@ class ONURESTController extends VoryxController
     {
         return $this->putAction($request, $entity);
     }
+
     /**
      * Delete a ONU entity.
      *
@@ -162,4 +115,5 @@ class ONURESTController extends VoryxController
             return FOSView::create($e->getMessage(), Codes::HTTP_INTERNAL_SERVER_ERROR);
         }
     }
+
 }

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

@@ -54,11 +54,15 @@ class ONU
     /**
      * @var int
      *
-     * @ORM\Column(type="integer")
+     * @ORM\Column(type="integer", nullable=false)
+     * @Assert\NotNull
      */
     private $clientId;
 
 
+    /**
+     * @return string
+     */
     public function __toString()
     {
         return $this->ponSerialNumber;

+ 0 - 1
src/FTTHBundle/Resources/config/routing.yml

@@ -1 +0,0 @@
-

+ 1 - 1
src/FTTHBundle/Resources/config/services.yml

@@ -3,6 +3,6 @@ services:
         class: FTTHBundle\Admin\ONUAdmin
         arguments: [~, FTTHBundle\Entity\ONU, SonataAdminBundle:CRUD]
         tags:
-            - { name: sonata.admin, manager_type: orm, group: admin, label: ONU, label_catalogue: FTTHBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
+            - { name: sonata.admin, manager_type: orm, group: FTTH, label: ONU, label_catalogue: FTTHBundle, label_translator_strategy: sonata.admin.label.strategy.underscore }
         calls:    
             - [setTranslationDomain, [FTTHBundle]]

+ 0 - 0
src/WebserviceBundle/Resources/config/routing.yml


+ 0 - 8
src/WebserviceBundle/Resources/config/services.yml

@@ -1,8 +0,0 @@
-services:
-   webservice:
-       class: WebserviceBundle\Services\Webservice
-       arguments: ["@service_container"]
-#   webservice.admin:
-#        class: WebserviceBundle\Services\Admin
-#        tags:
-#            - { name: kernel.event_listener, event: sonata.admin.event.configure.list, method: addChoices } 

+ 0 - 35
src/WebserviceBundle/Services/Webservice.php

@@ -1,35 +0,0 @@
-<?php
-
-namespace WebserviceBundle\Services;
-
-class Webservice
-{
-
-    protected $serviceContainer;
-
-    
-    public function __construct($serviceContainer)
-    {
-        $this->serviceContainer = $serviceContainer;
-    }
-
-    /**
-     * @param string $webservice
-     * @param array $params
-     * @return array
-     */
-    public function getChoices($webservice, $params = array())
-    {
-        $choices = array();
-        if ($this->serviceContainer->hasParameter($webservice)) {
-            $url = $this->serviceContainer->getParameter($webservice);
-            $objectsJson = json_decode(file_get_contents($url), true);
-            foreach ($objectsJson as $object) {
-                $choices[$object['name']] = $object['id'];
-            }
-        }
-
-        return $choices;
-    }
-
-}

+ 0 - 9
src/WebserviceBundle/WebserviceBundle.php

@@ -1,9 +0,0 @@
-<?php
-
-namespace WebserviceBundle;
-
-use Symfony\Component\HttpKernel\Bundle\Bundle;
-
-class WebserviceBundle extends Bundle
-{
-}