Commit 684b08ba authored by Thibaut Vallee's avatar Thibaut Vallee
Browse files
parents 2c70b763 447ff6e3
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4,6 +4,10 @@ Changelog
-----
- Paramètre code des exceptions null deprecated, remplacements des exception par Exception("message', previous: $e);

7.3.0
-----
- Nouvelles pages de listage et visualisation des sources de données (issues de la table 'source').

7.2.1
-----
- Extraction d'un trait ColumnValueFilterConfigFactoryTrait permettant de configurer des filtres de colonnes pour autre chose qu'un import. 
+50 −0
Original line number Diff line number Diff line
@@ -7,6 +7,8 @@ use Doctrine\Persistence\Mapping\Driver\MappingDriverChain;
use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;
use Laminas\ServiceManager\Factory\InvokableFactory;
use UnicaenDbImport\Controller\SourceController;
use UnicaenDbImport\Controller\SourceControllerFactory;
use UnicaenPrivilege\Guard\PrivilegeController;
use UnicaenDbImport\CodeGenerator\HelperAbstractFactory;
use UnicaenDbImport\Config\Config;
@@ -120,6 +122,12 @@ return [
                        'resource' => ImportPrivilege::getResourceId(ImportPrivilege::LISTER),
                        'order' => 100,
                        'pages' => [
                            'source' => [
                                'label' => "Sources",
                                'route' => 'unicaen-db-import/source',
                                'resource' => ImportPrivilege::getResourceId(ImportPrivilege::LISTER),
                                'order' => 5,
                            ],
                            'import' => [
                                'label' => "Imports",
                                'route' => 'unicaen-db-import/import',
@@ -185,6 +193,31 @@ return [
                            ],
                        ],
                    ],
                    'source' => [
                        'type' => Segment::class,
                        'options' => [
                            'route' => '/source',
                            'defaults' => [
                                'controller' => SourceController::class,
                                'action' => 'index',
                            ],
                        ],
                        'may_terminate' => true,
                        'child_routes' => [
                            'voir' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/voir/:id',
                                    'constraints' => [
                                        'id' => '[0-9]*',
                                    ],
                                    'defaults' => [
                                        'action' => 'voir',
                                    ],
                                ],
                            ],
                        ],
                    ],
                    'import' => [
                        'type' => Segment::class,
                        'options' => [
@@ -389,6 +422,22 @@ return [
    'bjyauthorize' => [
        'guards' => [
            PrivilegeController::class => [
                //--------------------------- source -------------------------
                [
                    'controller' => SourceController::class,
                    'action' => [
                        'index',
                    ],
                    'privileges' => ImportPrivilege::LISTER,
                ],
                [
                    'controller' => SourceController::class,
                    'action' => [
                        'voir',
                    ],
                    'privileges' => ImportPrivilege::CONSULTER,
                ],

                //--------------------------- import -------------------------
                [
                    'controller' => ImportController::class,
@@ -570,6 +619,7 @@ return [
    'controllers' => [
        'factories' => [
            ConsoleController::class => ConsoleControllerFactory::class,
            SourceController::class => SourceControllerFactory::class,
            ImportController::class => ImportControllerFactory::class,
            SynchroController::class => SynchroControllerFactory::class,
            ObservController::class => ObservControllerFactory::class,
+17 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ class ConfigFactory
        $this->container = $container;
        $this->moduleConfig = $this->getModuleConfig();

        $sourceEntityClass = $this->getSourceEntityClass();
        $defaultSourceCode = $this->getDefaultSourceCode();
        $importObservEntityClass = $this->getImportObservEntityClass();
        $importObservResultEntityClass = $this->getImportObservResultEntityClass();
@@ -59,6 +60,7 @@ class ConfigFactory
        $synchros = $this->createSynchros();

        $config = new Config();
        $config->setSourceEntityClass($sourceEntityClass);
        $config->setDefaultSourceCode($defaultSourceCode);
        $config->setImportObservEntityClass($importObservEntityClass);
        $config->setImportObservResultEntityClass($importObservResultEntityClass);
@@ -90,6 +92,21 @@ class ConfigFactory
        return $appConfig[$key];
    }

    /**
     * @return string
     * @throws \UnicaenDbImport\Config\ConfigException
     */
    private function getSourceEntityClass(): string
    {
        try {
            Assertion::keyExists($this->moduleConfig, $key = Config::KEY_source_entity_class);
        } catch (AssertionFailedException $e) {
            throw ConfigException::missingKey($key);
        }

        return $this->moduleConfig[$key];
    }

    /**
     * @return string
     * @throws \UnicaenDbImport\Config\ConfigException
+52 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenDbImport\Controller;

use Laminas\Http\PhpEnvironment\Response;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger;
use Laminas\Mvc\Plugin\Prg\PostRedirectGet;
use UnicaenDbImport\Entity\Db\Service\Source\SourceServiceAwareTrait;

/**
 * @method FlashMessenger flashMessenger()
 * @method PostRedirectGet prg($redirect = null, $redirectToUrl = false)
 */
class SourceController extends AbstractActionController
{
    use SourceServiceAwareTrait;

    /**
     * Listage des sources.
     *
     * @return array|\Laminas\Http\PhpEnvironment\Response
     */
    public function indexAction()
    {
        $prg = $this->prg(null, true);
        if ($prg instanceof Response) {
            return $prg;
        }

        $sources = $this->sourceService->getRepository()->findAll();

        return [
            'sources' => $sources,
        ];
    }

    /**
     * Détails d'une source.
     *
     * @return array
     */
    public function voirAction(): array
    {
        $id = $this->params('id');
        $source = $this->sourceService->getRepository()->find($id);

        return [
            'source' => $source,
        ];
    }
}
 No newline at end of file
+24 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenDbImport\Controller;

use Psr\Container\ContainerInterface;
use UnicaenDbImport\Entity\Db\Service\Source\SourceService;

class SourceControllerFactory
{
    /**
     * @throws \Psr\Container\ContainerExceptionInterface
     * @throws \Psr\Container\NotFoundExceptionInterface
     */
    public function __invoke(ContainerInterface $container): SourceController
    {
        /** @var \UnicaenDbImport\Entity\Db\Service\Source\SourceService $sourceService */
        $sourceService = $container->get(SourceService::class);

        $controller = new SourceController();
        $controller->setSourceService($sourceService);

        return $controller;
    }
}
 No newline at end of file
Loading