Loading Module.php +13 −1 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ namespace UnicaenImport; use Zend\ModuleManager\Feature\ConfigProviderInterface; use Zend\ModuleManager\Feature\ConsoleUsageProviderInterface; use Zend\Console\Adapter\AdapterInterface as ConsoleAdapterInterface; use Zend\Mvc\MvcEvent; /** Loading @@ -10,7 +12,7 @@ use Zend\Mvc\MvcEvent; * * @author Laurent LECLUSE <laurent.lecluse at unicaen.fr> */ class Module implements ConfigProviderInterface class Module implements ConfigProviderInterface, ConsoleUsageProviderInterface { public function onBootstrap(MvcEvent $e) { Loading @@ -23,4 +25,14 @@ class Module implements ConfigProviderInterface { return include __DIR__ . '/config/module.config.php'; } public function getConsoleUsage(ConsoleAdapterInterface $console) { return [ "Exécution de script", 'UnicaenImport SyncJob <job>' => "Lance un job de synchronisation", ]; } } config/module.config.php +18 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,23 @@ return [ ], ], 'console' => [ 'router' => [ 'routes' => [ 'unicaen-import' => [ 'options' => [ 'type' => 'catchall', 'route' => 'UnicaenImport SyncJob <job>', 'defaults' => [ 'controller' => 'Import\Controller\Import', 'action' => 'sync-job', ], ], ], ], ], ], 'navigation' => [ 'default' => [ 'home' => [ Loading Loading @@ -163,6 +180,7 @@ return [ Service\QueryGeneratorService::class => Service\Factory\QueryGeneratorServiceFactory::class, Service\DifferentielService::class => Service\Factory\DifferentielServiceFactory::class, Service\SourceService::class => Service\Factory\SourceServiceFactory::class, Service\TableService::class => Service\Factory\TableServiceFactory::class, Processus\ImportProcessus::class => Processus\Factory\ImportProcessusFactory::class, ORM\Event\Listeners\EntitySourceInjector::class => ORM\Event\Listeners\Factory\EntitySourceInjectorFactory::class, ], Loading data/module.sql +131 −81 Original line number Diff line number Diff line Loading @@ -9,13 +9,27 @@ CREATE TABLE SYNC_LOG USING INDEX (CREATE UNIQUE INDEX SYNC_LOG_PK ON SYNC_LOG (ID ASC)) ENABLE ); CREATE TABLE IMPORT_TABLES ( TABLE_NAME VARCHAR2(30 CHAR) NOT NULL , SYNC_FILTRE VARCHAR2(2000 CHAR) , SYNC_ENABLED NUMBER(1, 0) DEFAULT 0 NOT NULL , SYNC_JOB VARCHAR2(40 CHAR) , SYNC_HOOK_BEFORE VARCHAR2(4000 CHAR) , SYNC_HOOK_AFTER VARCHAR2(4000 CHAR) , ORDRE NUMBER , CONSTRAINT IMPORT_TABLES_PK PRIMARY KEY (TABLE_NAME) USING INDEX (CREATE UNIQUE INDEX IMPORT_TABLES_PK ON IMPORT_TABLES (TABLE_NAME ASC)) ENABLE ); / create sequence SYNC_LOG_ID_SEQ; / CREATE OR REPLACE VIEW "V_IMPORT_TAB_COLS" AS CREATE OR REPLACE VIEW "V_IMPORT_TAB_COLS" ("TABLE_NAME", "COLUMN_NAME", "DATA_TYPE", "LENGTH", "NULLABLE", "HAS_DEFAULT", "C_TABLE_NAME", "C_COLUMN_NAME", "IMPORT_ACTIF") AS WITH importable_tables (table_name )AS ( SELECT t.table_name Loading Loading @@ -59,30 +73,38 @@ CREATE OR REPLACE VIEW "V_IMPORT_TAB_COLS" AS FROM user_tab_cols tc JOIN importable_tables t ON t.table_name = tc.table_name LEFT JOIN import_tables it ON it.table_name = tc.table_name LEFT JOIN c_values cv ON cv.table_name = tc.table_name AND cv.column_name = tc.column_name LEFT JOIN user_tab_cols stc ON stc.table_name = 'SRC_' || tc.table_name AND stc.column_name = tc.column_name WHERE tc.column_name not like 'HISTO_%' AND tc.column_name <> 'ID' AND tc.table_name <> 'SYNC_LOG' ORDER BY tc.table_name, tc.column_id; it.ordre, tc.table_name, tc.column_id; / create or replace PACKAGE UNICAEN_IMPORT AS z__SYNC_FILRE__z CLOB DEFAULT ''; z__IGNORE_UPD_COLS__z CLOB DEFAULT ''; PROCEDURE set_current_user(p_current_user IN INTEGER); FUNCTION get_current_user return INTEGER; FUNCTION get_current_annee RETURN INTEGER; PROCEDURE set_current_annee (p_current_annee INTEGER); FUNCTION get_sql_criterion( table_name varchar2, sql_criterion VARCHAR2 ) RETURN CLOB; FUNCTION IN_COLUMN_LIST( VALEUR VARCHAR2, CHAMPS CLOB ) RETURN NUMERIC; PROCEDURE REFRESH_MV( mview_name varchar2 ); PROCEDURE SYNC_LOG( message CLOB, table_name VARCHAR2 DEFAULT NULL, source_code VARCHAR2 DEFAULT NULL ); -- AUTOMATIC GENERATION -- PROCEDURE SYNCHRONISATION( table_name VARCHAR2, SYNC_FILRE CLOB DEFAULT '', IGNORE_UPD_COLS CLOB DEFAULT '' ); -- END OF AUTOMATIC GENERATION -- END UNICAEN_IMPORT; / Loading @@ -97,7 +119,7 @@ create or replace PACKAGE BODY UNICAEN_IMPORT AS FUNCTION get_current_user RETURN INTEGER IS BEGIN IF v_current_user IS NULL THEN v_current_user := NULL; -- A remplacer par l'utilisateur (ID de la table USER) qui sera le créateur ou le modificateur des données v_current_user := OSE_PARAMETRE.GET_OSE_USER(); END IF; RETURN v_current_user; END get_current_user; Loading @@ -112,7 +134,7 @@ create or replace PACKAGE BODY UNICAEN_IMPORT AS FUNCTION get_current_annee RETURN INTEGER IS BEGIN IF v_current_annee IS NULL THEN v_current_annee := NULL; -- A remplacer par l'année d'import souhaitée (si vous avez de l'annualisation de prévue dans votre BDD) v_current_annee := OSE_PARAMETRE.GET_ANNEE_IMPORT(); END IF; RETURN v_current_annee; END get_current_annee; Loading @@ -124,30 +146,25 @@ create or replace PACKAGE BODY UNICAEN_IMPORT AS FUNCTION get_sql_criterion( table_name varchar2, sql_criterion VARCHAR2 ) RETURN CLOB IS PROCEDURE SYNCHRONISATION( table_name VARCHAR2, SYNC_FILRE CLOB DEFAULT '', IGNORE_UPD_COLS CLOB DEFAULT '' ) IS ok NUMERIC(1); BEGIN IF sql_criterion <> '' OR sql_criterion IS NOT NULL THEN RETURN sql_criterion; END IF; RETURN ''; /* Exemple d'usage : SELECT COUNT(*) INTO ok FROM import_tables it WHERE it.table_name = SYNCHRONISATION.table_name AND it.sync_enabled = 1 AND rownum = 1; RETURN CASE table_name WHEN 'INTERVENANT' THEN -- Met à jour toutes les données sauf le statut, qui sera traité à part 'WHERE IMPORT_ACTION IN (''delete'',''update'',''undelete'')' WHEN 'AFFECTATION_RECHERCHE' THEN 'WHERE INTERVENANT_ID IS NOT NULL' IF 1 = ok THEN z__SYNC_FILRE__z := SYNCHRONISATION.SYNC_FILRE; z__IGNORE_UPD_COLS__z := SYNCHRONISATION.IGNORE_UPD_COLS; EXECUTE IMMEDIATE 'BEGIN UNICAEN_IMPORT_AUTOGEN_PROCS__.' || table_name || '(); END;'; END IF; END; WHEN 'ADRESSE_INTERVENANT' THEN 'WHERE INTERVENANT_ID IS NOT NULL' WHEN 'ELEMENT_TAUX_REGIMES' THEN 'WHERE IMPORT_ACTION IN (''delete'',''insert'',''undelete'')' ELSE '' END;*/ PROCEDURE REFRESH_MV( mview_name varchar2 ) IS BEGIN DBMS_MVIEW.REFRESH(mview_name, 'C'); EXCEPTION WHEN OTHERS THEN SYNC_LOG( SQLERRM, mview_name ); END; Loading @@ -165,14 +182,27 @@ create or replace PACKAGE BODY UNICAEN_IMPORT AS RETURN 0; END; END UNICAEN_IMPORT; -- AUTOMATIC GENERATION -- / -- END OF AUTOMATIC GENERATION -- END UNICAEN_IMPORT; create or replace PACKAGE UNICAEN_IMPORT_AUTOGEN_PROCS__ IS END UNICAEN_IMPORT_AUTOGEN_PROCS__; / create or replace PACKAGE BODY UNICAEN_IMPORT_AUTOGEN_PROCS__ IS FUNCTION IN_COLUMN_LIST( VALEUR VARCHAR2, CHAMPS CLOB ) RETURN NUMERIC IS BEGIN IF REGEXP_LIKE(CHAMPS, '(^|,)[ \t\r\n\v\f]*' || VALEUR || '[ \t\r\n\v\f]*(,|$)') THEN RETURN 1; END IF; RETURN 0; END; END UNICAEN_IMPORT_AUTOGEN_PROCS__; / /********************************************************************************************* * Privilèges Loading @@ -199,7 +229,7 @@ insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'ecarts', 'Écarts entre les données de l''application et ses sources', 'Écarts', 1 from CATEGORIE_PRIVILEGE cat where code = 'import'; Loading @@ -209,7 +239,7 @@ insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'maj', 'Mise à jour des données à partir de leurs sources', 'Mise à jour', 2 from CATEGORIE_PRIVILEGE cat where code = 'import'; Loading @@ -219,7 +249,7 @@ insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'tbl', 'Tableau de bord principal', 'Tableau de bord', 3 from CATEGORIE_PRIVILEGE cat where code = 'import'; Loading @@ -229,6 +259,26 @@ insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'vues-procedures', 'Mise à jour des vues différentielles et des procédures de mise à jour', 'Gestion des vues et procédures', 4 from CATEGORIE_PRIVILEGE cat where code = 'import'; / insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'sources-edition', 'Sources (édition)', 5 from CATEGORIE_PRIVILEGE cat where code = 'import'; / insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'sources-visualisation', 'Sources (visualisation)', 6 from CATEGORIE_PRIVILEGE cat where code = 'import'; src/UnicaenImport/Controller/ImportController.php +8 −0 Original line number Diff line number Diff line Loading @@ -186,4 +186,12 @@ class ImportController extends AbstractActionController return new MessengerViewModel(); } public function syncJobAction() { $job = $this->getRequest()->getParam('job'); var_dump($job); } } No newline at end of file src/UnicaenImport/Entity/Db/Table.php +152 −2 Original line number Diff line number Diff line Loading @@ -21,10 +21,40 @@ class Table protected $name; /** * @var string * @var integer * @ORM\Column(name="ORDRE", type="integer", nullable=true) */ protected $ordre; /** * @var bool * @ORM\Column(name="SYNC_ENABLED", type="boolean", nullable=false) */ protected $syncEnabled = false; /** * @var string|null * @ORM\Column(name="SYNC_FILTRE", type="string", length=2000, nullable=true) */ protected $syncFiltre; protected $syncFiltre = null; /** * @var string|null * @ORM\Column(name="SYNC_JOB", type="string", length=40, nullable=true) */ protected $syncJob = null; /** * @var string|null * @ORM\Column(name="SYNC_HOOK_BEFORE", type="string", length=4000, nullable=true) */ protected $syncHookBefore = null; /** * @var string|null * @ORM\Column(name="SYNC_HOOK_AFTER", type="string", length=4000, nullable=true) */ protected $syncHookAfter = null; Loading Loading @@ -52,6 +82,54 @@ class Table /** * @return int */ public function getOrdre(): int { return $this->ordre; } /** * @param int $ordre * * @return Table */ public function setOrdre(int $ordre): Table { $this->ordre = $ordre; return $this; } /** * @return bool */ public function isSyncEnabled(): bool { return $this->syncEnabled; } /** * @param bool $syncEnabled * * @return Table */ public function setSyncEnabled(bool $syncEnabled): Table { $this->syncEnabled = $syncEnabled; return $this; } /** * @return string */ Loading @@ -74,4 +152,76 @@ class Table return $this; } /** * @return null|string */ public function getSyncJob() { return $this->syncJob; } /** * @param null|string $syncJob * * @return Table */ public function setSyncJob($syncJob): Table { $this->syncJob = $syncJob; return $this; } /** * @return null|string */ public function getSyncHookBefore() { return $this->syncHookBefore; } /** * @param null|string $syncHookBefore * * @return Table */ public function setSyncHookBefore($syncHookBefore): Table { $this->syncHookBefore = $syncHookBefore; return $this; } /** * @return null|string */ public function getSyncHookAfter() { return $this->syncHookAfter; } /** * @param null|string $syncHookAfter * * @return Table */ public function setSyncHookAfter($syncHookAfter): Table { $this->syncHookAfter = $syncHookAfter; return $this; } } No newline at end of file Loading
Module.php +13 −1 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ namespace UnicaenImport; use Zend\ModuleManager\Feature\ConfigProviderInterface; use Zend\ModuleManager\Feature\ConsoleUsageProviderInterface; use Zend\Console\Adapter\AdapterInterface as ConsoleAdapterInterface; use Zend\Mvc\MvcEvent; /** Loading @@ -10,7 +12,7 @@ use Zend\Mvc\MvcEvent; * * @author Laurent LECLUSE <laurent.lecluse at unicaen.fr> */ class Module implements ConfigProviderInterface class Module implements ConfigProviderInterface, ConsoleUsageProviderInterface { public function onBootstrap(MvcEvent $e) { Loading @@ -23,4 +25,14 @@ class Module implements ConfigProviderInterface { return include __DIR__ . '/config/module.config.php'; } public function getConsoleUsage(ConsoleAdapterInterface $console) { return [ "Exécution de script", 'UnicaenImport SyncJob <job>' => "Lance un job de synchronisation", ]; } }
config/module.config.php +18 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,23 @@ return [ ], ], 'console' => [ 'router' => [ 'routes' => [ 'unicaen-import' => [ 'options' => [ 'type' => 'catchall', 'route' => 'UnicaenImport SyncJob <job>', 'defaults' => [ 'controller' => 'Import\Controller\Import', 'action' => 'sync-job', ], ], ], ], ], ], 'navigation' => [ 'default' => [ 'home' => [ Loading Loading @@ -163,6 +180,7 @@ return [ Service\QueryGeneratorService::class => Service\Factory\QueryGeneratorServiceFactory::class, Service\DifferentielService::class => Service\Factory\DifferentielServiceFactory::class, Service\SourceService::class => Service\Factory\SourceServiceFactory::class, Service\TableService::class => Service\Factory\TableServiceFactory::class, Processus\ImportProcessus::class => Processus\Factory\ImportProcessusFactory::class, ORM\Event\Listeners\EntitySourceInjector::class => ORM\Event\Listeners\Factory\EntitySourceInjectorFactory::class, ], Loading
data/module.sql +131 −81 Original line number Diff line number Diff line Loading @@ -9,13 +9,27 @@ CREATE TABLE SYNC_LOG USING INDEX (CREATE UNIQUE INDEX SYNC_LOG_PK ON SYNC_LOG (ID ASC)) ENABLE ); CREATE TABLE IMPORT_TABLES ( TABLE_NAME VARCHAR2(30 CHAR) NOT NULL , SYNC_FILTRE VARCHAR2(2000 CHAR) , SYNC_ENABLED NUMBER(1, 0) DEFAULT 0 NOT NULL , SYNC_JOB VARCHAR2(40 CHAR) , SYNC_HOOK_BEFORE VARCHAR2(4000 CHAR) , SYNC_HOOK_AFTER VARCHAR2(4000 CHAR) , ORDRE NUMBER , CONSTRAINT IMPORT_TABLES_PK PRIMARY KEY (TABLE_NAME) USING INDEX (CREATE UNIQUE INDEX IMPORT_TABLES_PK ON IMPORT_TABLES (TABLE_NAME ASC)) ENABLE ); / create sequence SYNC_LOG_ID_SEQ; / CREATE OR REPLACE VIEW "V_IMPORT_TAB_COLS" AS CREATE OR REPLACE VIEW "V_IMPORT_TAB_COLS" ("TABLE_NAME", "COLUMN_NAME", "DATA_TYPE", "LENGTH", "NULLABLE", "HAS_DEFAULT", "C_TABLE_NAME", "C_COLUMN_NAME", "IMPORT_ACTIF") AS WITH importable_tables (table_name )AS ( SELECT t.table_name Loading Loading @@ -59,30 +73,38 @@ CREATE OR REPLACE VIEW "V_IMPORT_TAB_COLS" AS FROM user_tab_cols tc JOIN importable_tables t ON t.table_name = tc.table_name LEFT JOIN import_tables it ON it.table_name = tc.table_name LEFT JOIN c_values cv ON cv.table_name = tc.table_name AND cv.column_name = tc.column_name LEFT JOIN user_tab_cols stc ON stc.table_name = 'SRC_' || tc.table_name AND stc.column_name = tc.column_name WHERE tc.column_name not like 'HISTO_%' AND tc.column_name <> 'ID' AND tc.table_name <> 'SYNC_LOG' ORDER BY tc.table_name, tc.column_id; it.ordre, tc.table_name, tc.column_id; / create or replace PACKAGE UNICAEN_IMPORT AS z__SYNC_FILRE__z CLOB DEFAULT ''; z__IGNORE_UPD_COLS__z CLOB DEFAULT ''; PROCEDURE set_current_user(p_current_user IN INTEGER); FUNCTION get_current_user return INTEGER; FUNCTION get_current_annee RETURN INTEGER; PROCEDURE set_current_annee (p_current_annee INTEGER); FUNCTION get_sql_criterion( table_name varchar2, sql_criterion VARCHAR2 ) RETURN CLOB; FUNCTION IN_COLUMN_LIST( VALEUR VARCHAR2, CHAMPS CLOB ) RETURN NUMERIC; PROCEDURE REFRESH_MV( mview_name varchar2 ); PROCEDURE SYNC_LOG( message CLOB, table_name VARCHAR2 DEFAULT NULL, source_code VARCHAR2 DEFAULT NULL ); -- AUTOMATIC GENERATION -- PROCEDURE SYNCHRONISATION( table_name VARCHAR2, SYNC_FILRE CLOB DEFAULT '', IGNORE_UPD_COLS CLOB DEFAULT '' ); -- END OF AUTOMATIC GENERATION -- END UNICAEN_IMPORT; / Loading @@ -97,7 +119,7 @@ create or replace PACKAGE BODY UNICAEN_IMPORT AS FUNCTION get_current_user RETURN INTEGER IS BEGIN IF v_current_user IS NULL THEN v_current_user := NULL; -- A remplacer par l'utilisateur (ID de la table USER) qui sera le créateur ou le modificateur des données v_current_user := OSE_PARAMETRE.GET_OSE_USER(); END IF; RETURN v_current_user; END get_current_user; Loading @@ -112,7 +134,7 @@ create or replace PACKAGE BODY UNICAEN_IMPORT AS FUNCTION get_current_annee RETURN INTEGER IS BEGIN IF v_current_annee IS NULL THEN v_current_annee := NULL; -- A remplacer par l'année d'import souhaitée (si vous avez de l'annualisation de prévue dans votre BDD) v_current_annee := OSE_PARAMETRE.GET_ANNEE_IMPORT(); END IF; RETURN v_current_annee; END get_current_annee; Loading @@ -124,30 +146,25 @@ create or replace PACKAGE BODY UNICAEN_IMPORT AS FUNCTION get_sql_criterion( table_name varchar2, sql_criterion VARCHAR2 ) RETURN CLOB IS PROCEDURE SYNCHRONISATION( table_name VARCHAR2, SYNC_FILRE CLOB DEFAULT '', IGNORE_UPD_COLS CLOB DEFAULT '' ) IS ok NUMERIC(1); BEGIN IF sql_criterion <> '' OR sql_criterion IS NOT NULL THEN RETURN sql_criterion; END IF; RETURN ''; /* Exemple d'usage : SELECT COUNT(*) INTO ok FROM import_tables it WHERE it.table_name = SYNCHRONISATION.table_name AND it.sync_enabled = 1 AND rownum = 1; RETURN CASE table_name WHEN 'INTERVENANT' THEN -- Met à jour toutes les données sauf le statut, qui sera traité à part 'WHERE IMPORT_ACTION IN (''delete'',''update'',''undelete'')' WHEN 'AFFECTATION_RECHERCHE' THEN 'WHERE INTERVENANT_ID IS NOT NULL' IF 1 = ok THEN z__SYNC_FILRE__z := SYNCHRONISATION.SYNC_FILRE; z__IGNORE_UPD_COLS__z := SYNCHRONISATION.IGNORE_UPD_COLS; EXECUTE IMMEDIATE 'BEGIN UNICAEN_IMPORT_AUTOGEN_PROCS__.' || table_name || '(); END;'; END IF; END; WHEN 'ADRESSE_INTERVENANT' THEN 'WHERE INTERVENANT_ID IS NOT NULL' WHEN 'ELEMENT_TAUX_REGIMES' THEN 'WHERE IMPORT_ACTION IN (''delete'',''insert'',''undelete'')' ELSE '' END;*/ PROCEDURE REFRESH_MV( mview_name varchar2 ) IS BEGIN DBMS_MVIEW.REFRESH(mview_name, 'C'); EXCEPTION WHEN OTHERS THEN SYNC_LOG( SQLERRM, mview_name ); END; Loading @@ -165,14 +182,27 @@ create or replace PACKAGE BODY UNICAEN_IMPORT AS RETURN 0; END; END UNICAEN_IMPORT; -- AUTOMATIC GENERATION -- / -- END OF AUTOMATIC GENERATION -- END UNICAEN_IMPORT; create or replace PACKAGE UNICAEN_IMPORT_AUTOGEN_PROCS__ IS END UNICAEN_IMPORT_AUTOGEN_PROCS__; / create or replace PACKAGE BODY UNICAEN_IMPORT_AUTOGEN_PROCS__ IS FUNCTION IN_COLUMN_LIST( VALEUR VARCHAR2, CHAMPS CLOB ) RETURN NUMERIC IS BEGIN IF REGEXP_LIKE(CHAMPS, '(^|,)[ \t\r\n\v\f]*' || VALEUR || '[ \t\r\n\v\f]*(,|$)') THEN RETURN 1; END IF; RETURN 0; END; END UNICAEN_IMPORT_AUTOGEN_PROCS__; / /********************************************************************************************* * Privilèges Loading @@ -199,7 +229,7 @@ insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'ecarts', 'Écarts entre les données de l''application et ses sources', 'Écarts', 1 from CATEGORIE_PRIVILEGE cat where code = 'import'; Loading @@ -209,7 +239,7 @@ insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'maj', 'Mise à jour des données à partir de leurs sources', 'Mise à jour', 2 from CATEGORIE_PRIVILEGE cat where code = 'import'; Loading @@ -219,7 +249,7 @@ insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'tbl', 'Tableau de bord principal', 'Tableau de bord', 3 from CATEGORIE_PRIVILEGE cat where code = 'import'; Loading @@ -229,6 +259,26 @@ insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'vues-procedures', 'Mise à jour des vues différentielles et des procédures de mise à jour', 'Gestion des vues et procédures', 4 from CATEGORIE_PRIVILEGE cat where code = 'import'; / insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'sources-edition', 'Sources (édition)', 5 from CATEGORIE_PRIVILEGE cat where code = 'import'; / insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE) select PRIVILEGE_ID_SEQ.nextval, cat.id, 'sources-visualisation', 'Sources (visualisation)', 6 from CATEGORIE_PRIVILEGE cat where code = 'import';
src/UnicaenImport/Controller/ImportController.php +8 −0 Original line number Diff line number Diff line Loading @@ -186,4 +186,12 @@ class ImportController extends AbstractActionController return new MessengerViewModel(); } public function syncJobAction() { $job = $this->getRequest()->getParam('job'); var_dump($job); } } No newline at end of file
src/UnicaenImport/Entity/Db/Table.php +152 −2 Original line number Diff line number Diff line Loading @@ -21,10 +21,40 @@ class Table protected $name; /** * @var string * @var integer * @ORM\Column(name="ORDRE", type="integer", nullable=true) */ protected $ordre; /** * @var bool * @ORM\Column(name="SYNC_ENABLED", type="boolean", nullable=false) */ protected $syncEnabled = false; /** * @var string|null * @ORM\Column(name="SYNC_FILTRE", type="string", length=2000, nullable=true) */ protected $syncFiltre; protected $syncFiltre = null; /** * @var string|null * @ORM\Column(name="SYNC_JOB", type="string", length=40, nullable=true) */ protected $syncJob = null; /** * @var string|null * @ORM\Column(name="SYNC_HOOK_BEFORE", type="string", length=4000, nullable=true) */ protected $syncHookBefore = null; /** * @var string|null * @ORM\Column(name="SYNC_HOOK_AFTER", type="string", length=4000, nullable=true) */ protected $syncHookAfter = null; Loading Loading @@ -52,6 +82,54 @@ class Table /** * @return int */ public function getOrdre(): int { return $this->ordre; } /** * @param int $ordre * * @return Table */ public function setOrdre(int $ordre): Table { $this->ordre = $ordre; return $this; } /** * @return bool */ public function isSyncEnabled(): bool { return $this->syncEnabled; } /** * @param bool $syncEnabled * * @return Table */ public function setSyncEnabled(bool $syncEnabled): Table { $this->syncEnabled = $syncEnabled; return $this; } /** * @return string */ Loading @@ -74,4 +152,76 @@ class Table return $this; } /** * @return null|string */ public function getSyncJob() { return $this->syncJob; } /** * @param null|string $syncJob * * @return Table */ public function setSyncJob($syncJob): Table { $this->syncJob = $syncJob; return $this; } /** * @return null|string */ public function getSyncHookBefore() { return $this->syncHookBefore; } /** * @param null|string $syncHookBefore * * @return Table */ public function setSyncHookBefore($syncHookBefore): Table { $this->syncHookBefore = $syncHookBefore; return $this; } /** * @return null|string */ public function getSyncHookAfter() { return $this->syncHookAfter; } /** * @param null|string $syncHookAfter * * @return Table */ public function setSyncHookAfter($syncHookAfter): Table { $this->syncHookAfter = $syncHookAfter; return $this; } } No newline at end of file