Commit 988c8401 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Ménage dans le module Import du fait de l'utilisation de unicaen/db-import

parent 932df983
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -5,10 +5,9 @@ namespace Application;
use Application\Entity\Db\Source;
use Application\Navigation\NavigationFactoryFactory;
use Import\Filter\PrefixEtabColumnValueFilter;
use Retraitement\Filter\Command\RetraitementShellCommandMines;
use Import\Model\ImportObserv;
use Import\Model\ImportObservResult;
use UnicaenDbImport\Filter\ColumnName\DefaultColumnNameFilter;
use Retraitement\Filter\Command\RetraitementShellCommandMines;

define('APPLICATION_DIR', __DIR__ . '/../..');

+0 −4
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ use Application\Service\Workflow\WorkflowService;
use Doctrine\ORM\EntityManager;
use Fichier\Service\Fichier\FichierStorageService;
use Fichier\Service\VersionFichier\VersionFichierService;
use Import\Service\ImportService;
use Individu\Service\IndividuService;
use Interop\Container\ContainerInterface;
use Laminas\View\Renderer\PhpRenderer;
@@ -55,7 +54,6 @@ class TheseControllerFactory
         * @var UniteRechercheService   $uniteService
         * @var MailConfirmationService $mailConfirmationService
         * @var EntityManager           $entityManager
         * @var ImportService           $importService
         * @var UtilisateurService      $utilisateurService
         * @var ActeurService           $acteurService
         * @var IndividuService         $indivdiService
@@ -73,7 +71,6 @@ class TheseControllerFactory
        $mailConfirmationService = $container->get('MailConfirmationService');
        $entityManager = $container->get('doctrine.entitymanager.orm_default');
        $notifierService = $container->get(NotifierService::class);
//        $importService = $container->get('ImportService');
        $utilisateurService = $container->get('UtilisateurService');

        /**
@@ -112,7 +109,6 @@ class TheseControllerFactory
        $controller->setMailConfirmationService($mailConfirmationService);
        $controller->setEntityManager($entityManager);
        $controller->setNotifierService($notifierService);
//        $controller->setImportService($importService);
        $controller->setUtilisateurService($utilisateurService);
        $controller->setRdvBuTheseDoctorantForm($rdvBuTheseDoctorantForm);
        $controller->setRdvBuTheseForm($rdvBuTheseForm);
+1 −12
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@ use Fichier\Service\Storage\Adapter\Exception\StorageAdapterException;
use Fichier\Service\VersionFichier\VersionFichierServiceAwareTrait;
use Application\Service\Workflow\WorkflowServiceAwareTrait;
use Doctrine\ORM\OptimisticLockException;
use Import\Service\Traits\ImportServiceAwareTrait;
use UnicaenApp\Exception\RuntimeException;
use UnicaenApp\Service\EntityManagerAwareTrait;
use UnicaenApp\Service\MessageCollectorAwareTrait;
@@ -76,7 +75,6 @@ class TheseController extends AbstractController
    use EntityManagerAwareTrait;
    use MailConfirmationServiceAwareTrait;
    use UniteRechercheServiceAwareTrait;
    use ImportServiceAwareTrait;
    use UserContextServiceAwareTrait;
    use VariableServiceAwareTrait;
    use UtilisateurServiceAwareTrait;
@@ -313,19 +311,10 @@ class TheseController extends AbstractController

    /**
     * Import forcé d'une thèse et des inf.
     *
     * @return Response
     */
    public function refreshTheseAction()
    {
        $these = $this->requestedThese();

        $this->importService->setLogger((new Logger())->addWriter(new Noop()));
        $this->importService->updateThese($these);

        $redirect = $this->params()->fromQuery('redirect', '/');

        return $this->redirect()->toUrl($redirect);
        throw new \BadMethodCallException("Cette action n'est plus fonctionnelle !");
    }

    /**
+11 −41
Original line number Diff line number Diff line
@@ -25,39 +25,20 @@ class Module
        ]);
    }

    public function getAutoloaderConfig()
    public function getAutoloaderConfig(): array
    {
        return array(
            'Laminas\Loader\StandardAutoloader' => array(
                'namespaces' => array(
        return [
            'Laminas\Loader\StandardAutoloader' => [
                'namespaces' => [
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        );
                ],
            ],
        ];
    }

    public function getConsoleUsage(Console $console)
    public function getConsoleUsage(Console $console): array
    {
        return [
            // command
            'import --service=  --etablissement= [--source-code=] [--synchronize=] [--verbose] [--em=]' => "Importer toutes les données d'un service d'un établissement.",
            // parameters
            ['--service',       "Requis. Identifiant du service, ex: 'variable'"],
            ['--etablissement', "Requis. Identifiant de l'établissement, ex: 'UCN'"],
            ['--source-code',   "Facultatif. Source code du seul enregistrement à importer"],
            ['--synchronize',   "Facultatif. Réaliser ou non la synchro SRC_XXX => XXX. Valeurs possibles: 0, 1. Valeur par défaut: 1."],
            ['--verbose',       "Facultatif. Activer les logs verbeux (debug)."],
            ['--em',            "Facultatif. Nom de l'EntityManager à utiliser. Valeur par défaut: 'orm_default'."],

            // command
            'import-all --etablissement= [--synchronize=] [--verbose] [--em=]' => "Importer toutes les données de tous les serviceq d'un établissement.",
            // parameters
            ['--etablissement',          "Requis. Identifiant de l'établissement, ex: 'UCN'"],
            ['--breakOnServiceNotFound', "Facultatif. Faut-il stopper si un service appelé n'existe pas. Valeurs possibles: 0, 1. Valeur par défaut: 1."],
            ['--synchronize',            "Facultatif. Réaliser ou non la synchro SRC_XXX => XXX. Valeurs possibles: 0, 1. Valeur par défaut: 1."],
            ['--verbose',                "Facultatif. Activer les logs verbeux (debug)."],
            ['--em',                     "Facultatif. Nom de l'EntityManager à utiliser. Valeur par défaut: 'orm_default'."],

            // command
            'update-these --id= [--verbose] [--em=]' => "Mettre à jour une thèse et ses données liées.",
            // parameters
@@ -65,17 +46,6 @@ class Module
            ['--verbose', "Facultatif. Activer les logs verbeux (debug)."],
            ['--em', "Facultatif. Nom de l'EntityManager à utiliser. Valeur par défaut: 'orm_default'."],

            // command
            'synchronize --service= [--em=]' => "Lancer la synchro UnicaenImport pour un seul service.",
            // parameters
            ['--service', "Requis. Identifiant du service, ex: 'variable'"],
            ['--em',      "Facultatif. Nom de l'EntityManager à utiliser. Valeur par défaut: 'orm_default'."],

            // command
            'synchronize-all [--em=]' => "Lancer la synchro UnicaenImport pour tous les services.",
            // parameters
            ['--em', "Facultatif. Nom de l'EntityManager à utiliser. Valeur par défaut: 'orm_default'."],

            // command
            'process-observed-import-results --etablissement= [--import-observ=] [--source-code=]' => "Traitement des résultats d'observation de certains changements durant la synchro.",
            // parameters
+24 −140
Original line number Diff line number Diff line
@@ -2,29 +2,24 @@

use Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain;
use Doctrine\ORM\Mapping\Driver\XmlDriver;
use Import\Controller\Factory\ImportObserverControllerFactory;
use Import\Controller\ImportController;
use Import\Filter\PrefixEtabColumnValueFilter;
use Import\Filter\PrefixEtabColumnValueFilterFactory;
use Import\Service\CallService;
use Import\Model\Service\ImportObservResultService;
use Import\Model\Service\ImportObservResultServiceFactory;
use Laminas\Mvc\Console\Router\Simple;
use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;
use UnicaenAuth\Guard\PrivilegeController;

return [
    'bjyauthorize'    => [
        'guards' => [
            \UnicaenAuth\Guard\PrivilegeController::class => [
            PrivilegeController::class => [
                [
                    'controller' => Import\Controller\ImportController::class,
                    'action'     => [
                        'help',
                        'import',
                        'import-all',
                        'update-these',
                        'index',
                        'apiInfo',
                        'launcher',
                        'info-last-update',
                    ],
                    'roles' => [
                        'Administrateur technique',
@@ -33,8 +28,14 @@ return [
                [
                    'controller' => Import\Controller\ImportController::class,
                    'action'     => [
                        'import-console',
                        'import-all-console',
                        'update-these-console',
                    ],
                    'roles' => [],
                ],
                [
                    'controller' => 'Application\Controller\ImportNotification',
                    'action'     => [
                        'process-observed-import-results',
                    ],
                    'roles' => [],
                ],
@@ -65,42 +66,28 @@ return [
    'console' => [
        'router' => [
            'routes' => [
                'import-console' => [
                'update-these-console' => [
                    'type' => Simple::class,
                    'options' => [
                        'route'    => 'import --service=  --etablissement= [--source-code=] [--synchronize=] [--verbose] [--em=]',
                        'route'    => 'update-these --id= [--verbose] [--em=]',
                        'defaults' => [
                            /**
                             * @see ImportController::importConsoleAction()
                             * @see ImportController::updateTheseConsoleAction()
                             */
                            'controller' => Import\Controller\ImportController::class,
                            'action'     => 'import-console',
                            'action'     => 'update-these-console',
                        ],
                    ],
                ],
                'import-all-console' => [
                    'type' => Simple::class,
                'process-observed-import-results' => [
                    'options' => [
                        'route'    => 'import-all --etablissement= [--breakOnServiceNotFound=] [--synchronize=] [--verbose] [--em=]',
                        'route'    => 'process-observed-import-results --etablissement= [--import-observ=] [--source-code=] [--force]',
                        'defaults' => [
                            /**
                             * @see ImportController::importAllConsoleAction()
                             * @see \Import\Controller\ImportObserverController::processObservedImportResultsAction()
                             */
                            'controller' => Import\Controller\ImportController::class,
                            'action'     => 'import-all-console',
                        ],
                    ],
                ],
                'update-these-console' => [
                    'type' => Simple::class,
                    'options' => [
                        'route'    => 'update-these --id= [--verbose] [--em=]',
                        'defaults' => [
                            /**
                             * @see ImportController::updateTheseConsoleAction()
                             */
                            'controller' => Import\Controller\ImportController::class,
                            'action'     => 'update-these-console',
                            'controller' => 'Application\Controller\ImportNotification',
                            'action'     => 'process-observed-import-results',
                        ],
                    ],
                ],
@@ -125,76 +112,6 @@ return [
                    ],
                ],
                'child_routes' => [
                    'api-info' => [
                        'type' => Segment::class,
                        'may_terminate' => true,
                        'options' => [
                            'route'    => '/api-info/:etablissement',
                            'defaults' => [
                                'controller' => Import\Controller\ImportController::class,
                                'action'     => 'apiInfo',
                            ],
                        ],
                    ],
                    'launcher' => [
                        'type' => Literal::class,
                        'may_terminate' => true,
                        'options' => [
                            'route'    => '/launcher',
                            'defaults' => [
                                'controller' => Import\Controller\ImportController::class,
                                'action'     => 'launcher',
                            ],
                        ],
                    ],
                    'info-last-update' => [
                        'type' => Segment::class,
                        'may_terminate' => true,
                        'options' => [
                            'route'    => '/info-last-update/:table/:etablissement',
                            'defaults' => [
                                'controller' => Import\Controller\ImportController::class,
                                'action'     => 'info-last-update',
                            ],
                        ],
                    ],
                    'import' => [
                        'type' => Segment::class,
                        'may_terminate' => true,
                        'options' => [
                            'route'    => '/import/:service/:etablissement[/:source_code]',
                            'defaults' => [
                                'controller' => Import\Controller\ImportController::class,
                                'action'     => 'import',
                            ],
                            'constraints' => [
                                'service' => implode('|', [
                                    "these",
                                    "doctorant",
                                    "acteur",
                                    "variable",
                                    "individu",
                                    "role",
                                    "structure",
                                    "etablissement",
                                    "unite-recherche",
                                    "ecole-doctorale",
                                ]),
                            ]
                        ],
                    ],
                    'import-all' => [
                        'type' => Segment::class,
                        'may_terminate' => true,
                        'options' => [
                            'route'    => '/import-all/:etablissement',
                            'defaults' => [
                                'controller'    => Import\Controller\ImportController::class,
                                'action'        => 'import-all',
                                'etablissement' => 'non renseigné',
                            ],
                        ],
                    ],
                    'update-these' => [
                        'type' => Segment::class,
                        'may_terminate' => true,
@@ -206,17 +123,6 @@ return [
                            ],
                        ],
                    ],
                    'help' => [
                        'type' => Literal::class,
                        'may_terminate' => true,
                        'options' => [
                            'route'    => '/help',
                            'defaults' => [
                                'controller'    => Import\Controller\ImportController::class,
                                'action'        => 'help',
                            ],
                        ],
                    ]
                ],
            ],
        ],
@@ -226,42 +132,19 @@ return [
        'default' => [
            'home' => [
                'pages' => [
                    'ws-import' => [
                        'label' => "Import",
                        'order' => 0,
                        'route' => 'ws-import',
                        'resource' => \UnicaenAuth\Guard\PrivilegeController::getResourceId('Import\Controller\Import', 'index'),
                        'pages' => [
                            'home' => [
                                'label' => "Accueil",
                                'route' => 'ws-import',
                                'resource' => \UnicaenAuth\Guard\PrivilegeController::getResourceId('Import\Controller\Import', 'index'),
                            ],
                            'launcher' => [
                                'label' => "Lancement",
                                'route' => 'ws-import/launcher',
                                'resource' => \UnicaenAuth\Guard\PrivilegeController::getResourceId('Import\Controller\Import', 'index'),
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

    'service_manager' => [
        'invokables' => [
            CallService::class => CallService::class,
        ],
        'abstract_factories' => [
            'Laminas\Cache\Service\StorageCacheAbstractServiceFactory',
            'Laminas\Log\LoggerAbstractServiceFactory',
        ],
        'factories' => [
            Import\Service\ImportService::class  => Import\Service\Factory\ImportServiceFactory::class,
            Import\Service\FetcherService::class => Import\Service\Factory\FetcherServiceFactory::class,
            Import\Service\DbService::class      => Import\Service\Factory\DbServiceFactory::class,
            Import\Service\SynchroService::class => Import\Service\Factory\SynchroServiceFactory::class,
            ImportObservResultService::class => ImportObservResultServiceFactory::class,
            PrefixEtabColumnValueFilter::class => PrefixEtabColumnValueFilterFactory::class,
        ],
        'aliases' => [
@@ -273,6 +156,7 @@ return [
    'controllers' => [
        'factories' => [
            Import\Controller\ImportController::class => Import\Controller\Factory\ImportControllerFactory::class,
            'Application\Controller\ImportNotification' => ImportObserverControllerFactory::class,
        ],
    ],

Loading