Loading module/Depot/src/Depot/Notification/ChangementCorrectionAttendueNotification.php +1 −1 Changes for module/Depot/src/Depot/Notification/ChangementCorrectionAttendueNotification.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ class ChangementCorrectionAttendueNotification extends Notification $cc = null; if ($directeursTheseEnCopie) { $cc = $this->these->getDirecteursTheseEmails(); $cc = array_merge($this->these->getDirecteursTheseEmails(), $this->these->getCoDirecteursTheseEmails()); } $subject = "Dépôt de thèse, corrections " . lcfirst($this->these->getCorrectionAutoriseeToString()) . "s attendues"; Loading module/RapportActivite/data/install_module_v2.sql +17 −5 Changes for module/RapportActivite/data/install_module_v2.sql: 17 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ create table rapport_activite on delete cascade, annee_univ bigint not null, est_fin_contrat boolean not null, par_directeur_these boolean default false not null, par_directeur_these_motif text, description_projet_recherche text, principaux_resultats_obtenus text, productions_scientifiques text, Loading Loading @@ -240,9 +242,21 @@ with data(categ, priv) as ( ) select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID from data join PROFIL on profil.ROLE_ID in ( 'ADMIN_TECH', 'BDD' join PROFIL on profil.ROLE_ID in ('ADMIN_TECH', 'BDD') join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv where not exists ( select * from PROFIL_PRIVILEGE where PRIVILEGE_ID = p.id and PROFIL_ID = profil.id ) ; INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as ( select 'rapport-activite', 'ajouter-sien' union select 'rapport-activite', 'modifier-sien' ) select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID from data join PROFIL on profil.ROLE_ID in ('D', 'DOCTORANT') join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv where not exists ( Loading @@ -252,8 +266,6 @@ where not exists ( INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as ( select 'rapport-activite', 'lister-sien' union select 'rapport-activite', 'ajouter-sien' union select 'rapport-activite', 'modifier-sien' union select 'rapport-activite', 'consulter-sien' union select 'rapport-activite', 'telecharger-sien' union select 'rapport-activite', 'generer-sien' Loading Loading @@ -301,7 +313,7 @@ update type_validation set code = 'RAPPORT_ACTIVITE_AUTO', libelle = 'Validation finale du rapport d''activité non dématérialisé (ancien module)' where code = 'RAPPORT_ACTIVITE'; insert into type_validation(id, code, libelle) select nextval('type_validation_id_seq'), 'RAPPORT_ACTIVITE_DOCTORANT', 'Validation du rapport d''activité par le doctorant'; select nextval('type_validation_id_seq'), 'RAPPORT_ACTIVITE_DOCTORANT', 'Validation du rapport d''activité'; INSERT INTO type_validation (id, code, libelle) select nextval('type_validation_id_seq'), 'RAPPORT_ACTIVITE', 'Validation finale du rapport d''activité non dématérialisé (ancien module)'; Loading module/RapportActivite/src/RapportActivite/Assertion/Avis/RapportActiviteAvisAssertion.php +8 −0 Changes for module/RapportActivite/src/RapportActivite/Assertion/Avis/RapportActiviteAvisAssertion.php: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -28,6 +28,10 @@ class RapportActiviteAvisAssertion extends RapportActiviteOperationAbstractAsser */ protected function assertController($controller, $action = null, $privilege = null): bool { if (! parent::assertController($controller, $action, $privilege)) { return false; } // switch ($action) { // case 'ajouter': // $rapportActivite = $this->rapportActiviteService->fetchRapportById($this->getRouteMatch()->getParam('rapport')); Loading Loading @@ -141,6 +145,10 @@ class RapportActiviteAvisAssertion extends RapportActiviteOperationAbstractAsser */ protected function assertEntity(ResourceInterface $entity, $privilege = null): bool { if (! parent::assertEntity($entity, $privilege)) { return false; } $rapportActiviteAvis = $entity; $rapport = $rapportActiviteAvis->getRapportActivite(); Loading module/RapportActivite/src/RapportActivite/Assertion/Validation/RapportActiviteValidationAssertion.php +4 −0 Changes for module/RapportActivite/src/RapportActivite/Assertion/Validation/RapportActiviteValidationAssertion.php: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -90,6 +90,10 @@ class RapportActiviteValidationAssertion extends RapportActiviteOperationAbstrac */ protected function assertEntity(ResourceInterface $entity, $privilege = null): bool { if (! parent::assertEntity($entity, $privilege)) { return false; } /** @var RapportActiviteValidation $rapportActiviteValidation */ $rapportActiviteValidation = $entity; Loading module/RapportActivite/src/RapportActivite/Config/ModuleConfig.php +14 −7 Changes for module/RapportActivite/src/RapportActivite/Config/ModuleConfig.php: 14 added lines, 7 removed lines. Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ class ModuleConfig self::VALIDATION_DOCTORANT => [ 'type' => RapportActiviteValidation::class, 'code' => TypeValidation::CODE_RAPPORT_ACTIVITE_DOCTORANT, 'role' => [Role::CODE_DOCTORANT], 'role' => [Role::CODE_DOCTORANT, Role::CODE_DIRECTEUR_THESE], 'pre_condition' => null, 'enabled' => function(RapportActivite $rapportActivite) { return $rapportActivite->getFichier() === null; Loading Loading @@ -86,11 +86,15 @@ class ModuleConfig ], 'enabled' => function(RapportActivite $rapportActivite) { return !$rapportActivite->getParDirecteurThese() && !$rapportActivite->estFinContrat() && $rapportActivite->getFichier() === null; }, 'enabled_as_dql' => function(string $rapportAlias) { return "$rapportAlias.estFinContrat = false AND $rapportAlias.fichier is null"; return "$rapportAlias.parDirecteurThese = false AND " . "$rapportAlias.estFinContrat = false AND " . "$rapportAlias.fichier is null"; }, ], /** Loading @@ -111,8 +115,9 @@ class ModuleConfig }, 'enabled_as_dql' => function(string $rapportAlias) { return "$rapportAlias.estFinContrat = false AND $rapportAlias.fichier is null " . "AND EXISTS ( "$rapportAlias.estFinContrat = false AND " . "$rapportAlias.fichier is null AND " . "EXISTS ( SELECT a_filter FROM " . Acteur::class . " a_filter JOIN a_filter.role r WITH r.code = '" . Role::CODE_CODIRECTEUR_THESE . "' WHERE a_filter.histoDestruction is null AND a_filter.these = $rapportAlias.these Loading @@ -135,7 +140,9 @@ class ModuleConfig $rapportActivite->getFichier() === null; }, 'enabled_as_dql' => function(string $rapportAlias) { return "$rapportAlias.estFinContrat = false AND $rapportAlias.fichier is null"; return "$rapportAlias.estFinContrat = false AND " . "$rapportAlias.fichier is null"; }, ], /** Loading @@ -158,8 +165,8 @@ class ModuleConfig }, 'enabled_as_dql' => function(string $rapportAlias) { return "$rapportAlias.estFinContrat = false AND $rapportAlias.fichier is null OR $rapportAlias.fichier is not null"; "($rapportAlias.estFinContrat = false AND $rapportAlias.fichier is null) OR" . "$rapportAlias.fichier is not null"; }, 'extra' => [ // Si un avis "rapport incomplet" est émis par la direction d'ED, on supprimera la validation doctorant. Loading Loading
module/Depot/src/Depot/Notification/ChangementCorrectionAttendueNotification.php +1 −1 Changes for module/Depot/src/Depot/Notification/ChangementCorrectionAttendueNotification.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ class ChangementCorrectionAttendueNotification extends Notification $cc = null; if ($directeursTheseEnCopie) { $cc = $this->these->getDirecteursTheseEmails(); $cc = array_merge($this->these->getDirecteursTheseEmails(), $this->these->getCoDirecteursTheseEmails()); } $subject = "Dépôt de thèse, corrections " . lcfirst($this->these->getCorrectionAutoriseeToString()) . "s attendues"; Loading
module/RapportActivite/data/install_module_v2.sql +17 −5 Changes for module/RapportActivite/data/install_module_v2.sql: 17 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ create table rapport_activite on delete cascade, annee_univ bigint not null, est_fin_contrat boolean not null, par_directeur_these boolean default false not null, par_directeur_these_motif text, description_projet_recherche text, principaux_resultats_obtenus text, productions_scientifiques text, Loading Loading @@ -240,9 +242,21 @@ with data(categ, priv) as ( ) select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID from data join PROFIL on profil.ROLE_ID in ( 'ADMIN_TECH', 'BDD' join PROFIL on profil.ROLE_ID in ('ADMIN_TECH', 'BDD') join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv where not exists ( select * from PROFIL_PRIVILEGE where PRIVILEGE_ID = p.id and PROFIL_ID = profil.id ) ; INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as ( select 'rapport-activite', 'ajouter-sien' union select 'rapport-activite', 'modifier-sien' ) select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID from data join PROFIL on profil.ROLE_ID in ('D', 'DOCTORANT') join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv where not exists ( Loading @@ -252,8 +266,6 @@ where not exists ( INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as ( select 'rapport-activite', 'lister-sien' union select 'rapport-activite', 'ajouter-sien' union select 'rapport-activite', 'modifier-sien' union select 'rapport-activite', 'consulter-sien' union select 'rapport-activite', 'telecharger-sien' union select 'rapport-activite', 'generer-sien' Loading Loading @@ -301,7 +313,7 @@ update type_validation set code = 'RAPPORT_ACTIVITE_AUTO', libelle = 'Validation finale du rapport d''activité non dématérialisé (ancien module)' where code = 'RAPPORT_ACTIVITE'; insert into type_validation(id, code, libelle) select nextval('type_validation_id_seq'), 'RAPPORT_ACTIVITE_DOCTORANT', 'Validation du rapport d''activité par le doctorant'; select nextval('type_validation_id_seq'), 'RAPPORT_ACTIVITE_DOCTORANT', 'Validation du rapport d''activité'; INSERT INTO type_validation (id, code, libelle) select nextval('type_validation_id_seq'), 'RAPPORT_ACTIVITE', 'Validation finale du rapport d''activité non dématérialisé (ancien module)'; Loading
module/RapportActivite/src/RapportActivite/Assertion/Avis/RapportActiviteAvisAssertion.php +8 −0 Changes for module/RapportActivite/src/RapportActivite/Assertion/Avis/RapportActiviteAvisAssertion.php: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -28,6 +28,10 @@ class RapportActiviteAvisAssertion extends RapportActiviteOperationAbstractAsser */ protected function assertController($controller, $action = null, $privilege = null): bool { if (! parent::assertController($controller, $action, $privilege)) { return false; } // switch ($action) { // case 'ajouter': // $rapportActivite = $this->rapportActiviteService->fetchRapportById($this->getRouteMatch()->getParam('rapport')); Loading Loading @@ -141,6 +145,10 @@ class RapportActiviteAvisAssertion extends RapportActiviteOperationAbstractAsser */ protected function assertEntity(ResourceInterface $entity, $privilege = null): bool { if (! parent::assertEntity($entity, $privilege)) { return false; } $rapportActiviteAvis = $entity; $rapport = $rapportActiviteAvis->getRapportActivite(); Loading
module/RapportActivite/src/RapportActivite/Assertion/Validation/RapportActiviteValidationAssertion.php +4 −0 Changes for module/RapportActivite/src/RapportActivite/Assertion/Validation/RapportActiviteValidationAssertion.php: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -90,6 +90,10 @@ class RapportActiviteValidationAssertion extends RapportActiviteOperationAbstrac */ protected function assertEntity(ResourceInterface $entity, $privilege = null): bool { if (! parent::assertEntity($entity, $privilege)) { return false; } /** @var RapportActiviteValidation $rapportActiviteValidation */ $rapportActiviteValidation = $entity; Loading
module/RapportActivite/src/RapportActivite/Config/ModuleConfig.php +14 −7 Changes for module/RapportActivite/src/RapportActivite/Config/ModuleConfig.php: 14 added lines, 7 removed lines. Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ class ModuleConfig self::VALIDATION_DOCTORANT => [ 'type' => RapportActiviteValidation::class, 'code' => TypeValidation::CODE_RAPPORT_ACTIVITE_DOCTORANT, 'role' => [Role::CODE_DOCTORANT], 'role' => [Role::CODE_DOCTORANT, Role::CODE_DIRECTEUR_THESE], 'pre_condition' => null, 'enabled' => function(RapportActivite $rapportActivite) { return $rapportActivite->getFichier() === null; Loading Loading @@ -86,11 +86,15 @@ class ModuleConfig ], 'enabled' => function(RapportActivite $rapportActivite) { return !$rapportActivite->getParDirecteurThese() && !$rapportActivite->estFinContrat() && $rapportActivite->getFichier() === null; }, 'enabled_as_dql' => function(string $rapportAlias) { return "$rapportAlias.estFinContrat = false AND $rapportAlias.fichier is null"; return "$rapportAlias.parDirecteurThese = false AND " . "$rapportAlias.estFinContrat = false AND " . "$rapportAlias.fichier is null"; }, ], /** Loading @@ -111,8 +115,9 @@ class ModuleConfig }, 'enabled_as_dql' => function(string $rapportAlias) { return "$rapportAlias.estFinContrat = false AND $rapportAlias.fichier is null " . "AND EXISTS ( "$rapportAlias.estFinContrat = false AND " . "$rapportAlias.fichier is null AND " . "EXISTS ( SELECT a_filter FROM " . Acteur::class . " a_filter JOIN a_filter.role r WITH r.code = '" . Role::CODE_CODIRECTEUR_THESE . "' WHERE a_filter.histoDestruction is null AND a_filter.these = $rapportAlias.these Loading @@ -135,7 +140,9 @@ class ModuleConfig $rapportActivite->getFichier() === null; }, 'enabled_as_dql' => function(string $rapportAlias) { return "$rapportAlias.estFinContrat = false AND $rapportAlias.fichier is null"; return "$rapportAlias.estFinContrat = false AND " . "$rapportAlias.fichier is null"; }, ], /** Loading @@ -158,8 +165,8 @@ class ModuleConfig }, 'enabled_as_dql' => function(string $rapportAlias) { return "$rapportAlias.estFinContrat = false AND $rapportAlias.fichier is null OR $rapportAlias.fichier is not null"; "($rapportAlias.estFinContrat = false AND $rapportAlias.fichier is null) OR" . "$rapportAlias.fichier is not null"; }, 'extra' => [ // Si un avis "rapport incomplet" est émis par la direction d'ED, on supprimera la validation doctorant. Loading