Loading CHANGELOG.md +8 −0 Changes for CHANGELOG.md: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Journal des modifications ========================= 8.0.0 ----- - Nouveau module Admission (Formulaire permettant de candidater à un parcours doctoral) - Saisie des informations concernant l'étudiant, son parcours, son inscription et ses spécifités et le financement - Dépôt de pièces justificatives - Remplissage et validation en ligne de la convention de formation doctorale - Validation en ligne de la charte doctorale 7.0.1 ----- - [FIX] Module Substitutions : plantage de la page consacrée aux doublons (substitutions possibles). Loading doc/release-notes/8.0.0/admission.sql 0 → 100644 +1799 −0 File added.Preview size limit exceeded, changes collapsed. Show changes module/Admission/Sql/admission.sql +39 −6 Changes for module/Admission/Sql/admission.sql: 39 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -452,6 +452,34 @@ create table IF NOT EXISTS admission_validation ); --------------------------- Avis du dossier d'admission --------------------------- DELETE FROM unicaen_avis_complem WHERE avis_id IN (SELECT id FROM unicaen_avis WHERE avis_valeur_id IN (SELECT ua.avis_valeur_id FROM unicaen_avis ua JOIN unicaen_avis_valeur uav ON ua.avis_valeur_id = uav.id WHERE uav.code LIKE 'AVIS_ADMISSION_%')); DELETE FROM unicaen_avis WHERE avis_valeur_id IN (SELECT ua.avis_valeur_id FROM unicaen_avis ua JOIN unicaen_avis_valeur uav ON ua.avis_valeur_id = uav.id WHERE uav.code LIKE 'AVIS_ADMISSION_%'); DELETE FROM unicaen_avis_type_valeur_complem WHERE code LIKE 'AVIS_ADMISSION_%'; DELETE FROM unicaen_avis_type_valeur WHERE avis_valeur_id IN (SELECT id FROM unicaen_avis_valeur WHERE code LIKE 'AVIS_ADMISSION_%'); DELETE FROM unicaen_avis_type WHERE code LIKE 'AVIS_ADMISSION_%'; DELETE from unicaen_avis_valeur where code LIKE 'AVIS_ADMISSION_%'; create table admission_avis ( Loading Loading @@ -513,7 +541,8 @@ from tmp, unicaen_avis_type_valeur tv join unicaen_avis_type t on t.id = tv.avis_type_id and t.code = 'AVIS_ADMISSION_DIR_THESE' join unicaen_avis_valeur v on v.id = tv.avis_valeur_id and v.code in ( 'AVIS_ADMISSION_VALEUR_NEGATIF' 'AVIS_ADMISSION_VALEUR_NEGATIF', 'AVIS_ADMISSION_VALEUR_INCOMPLET' ) ON CONFLICT DO NOTHING; Loading Loading @@ -569,7 +598,8 @@ from tmp, unicaen_avis_type_valeur tv join unicaen_avis_type t on t.id = tv.avis_type_id and t.code = 'AVIS_ADMISSION_CODIR_THESE' join unicaen_avis_valeur v on v.id = tv.avis_valeur_id and v.code in ( 'AVIS_ADMISSION_VALEUR_NEGATIF' 'AVIS_ADMISSION_VALEUR_NEGATIF', 'AVIS_ADMISSION_VALEUR_INCOMPLET' ) ON CONFLICT DO NOTHING; Loading Loading @@ -624,7 +654,8 @@ from tmp, unicaen_avis_type_valeur tv join unicaen_avis_type t on t.id = tv.avis_type_id and t.code = 'AVIS_ADMISSION_DIR_UR' join unicaen_avis_valeur v on v.id = tv.avis_valeur_id and v.code in ( 'AVIS_ADMISSION_VALEUR_NEGATIF' 'AVIS_ADMISSION_VALEUR_NEGATIF', 'AVIS_ADMISSION_VALEUR_INCOMPLET' ) ON CONFLICT DO NOTHING; Loading Loading @@ -681,7 +712,8 @@ from tmp, unicaen_avis_type_valeur tv join unicaen_avis_type t on t.id = tv.avis_type_id and t.code = 'AVIS_ADMISSION_DIR_ED' join unicaen_avis_valeur v on v.id = tv.avis_valeur_id and v.code in ( 'AVIS_ADMISSION_VALEUR_NEGATIF' 'AVIS_ADMISSION_VALEUR_NEGATIF', 'AVIS_ADMISSION_VALEUR_INCOMPLET' ) ON CONFLICT DO NOTHING; Loading Loading @@ -740,7 +772,8 @@ from tmp, unicaen_avis_type_valeur tv join unicaen_avis_type t on t.id = tv.avis_type_id and t.code = 'AVIS_ADMISSION_PRESIDENCE' join unicaen_avis_valeur v on v.id = tv.avis_valeur_id and v.code in ( 'AVIS_ADMISSION_VALEUR_NEGATIF' 'AVIS_ADMISSION_VALEUR_NEGATIF', 'AVIS_ADMISSION_VALEUR_INCOMPLET' ) ON CONFLICT DO NOTHING; Loading Loading @@ -1529,7 +1562,7 @@ VALUES ('ADMISSION_VALIDATION_SUPPRIMEE', null, 'Admission\Provider\Template'); INSERT INTO public.unicaen_renderer_template (code, description, document_type, document_sujet, document_corps, document_css, namespace) VALUES ('ADMISSION_VALIDATION_SUPPRIMEE', VALUES ('ADMISSION_NOTIFICATION_DECLARATION_DOSSIER_INCOMPLET', '<p>Notification lorsque qu''un avis émis est ''Dossier incomplet'' lors du circuit de signatures du dossier d''admission</p>', 'mail', 'Le dossier d''admission de VAR[Individu#Denomination] est incomplet', e'<p>Bonjour,</p> <p>Ceci est un mail envoyé automatiquement par l''application ESUP-SyGAL.</p> Loading module/Admission/src/Admission/Assertion/AdmissionOperationAbstractAssertion.php +8 −0 Changes for module/Admission/src/Admission/Assertion/AdmissionOperationAbstractAssertion.php: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -50,6 +50,14 @@ class AdmissionOperationAbstractAssertion extends AdmissionAbstractAssertion ); } protected function assertDirectionAdmission(Admission $admission) { $this->assertTrue( in_array($admission->getEtat()->getCode(), [Admission::ETAT_EN_COURS_SAISIE, Admission::ETAT_EN_COURS_VALIDATION]), "Le dossier d'admission doit être en cours" ); } protected function assertDossierCompletAdmission(AdmissionValidation $admissionValidation) { //cette condition ne concerne pas la première validation du dossier Loading module/Admission/src/Admission/Config/ModuleConfig.php +9 −1 Changes for module/Admission/src/Admission/Config/ModuleConfig.php: 9 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -76,7 +76,14 @@ class ModuleConfig 'code' => TypeValidation::CODE_VALIDATION_GESTIONNAIRE, 'role' => [Role::CODE_ADMIN_TECH, Role::CODE_GEST_ED], 'pre_condition' => function(Admission $admission) { return $admission->isDossierComplet(); $directeur = null; $coDirecteur = null; //Il faut que le directeur et le co-directeur (le cas échéant) doivent-être enregistrés en BDD pour pouvoir effectuer cette validation if($admission->getInscription()->first()){ $directeur = $admission->getInscription()->first()->getDirecteur(); $coDirecteur = !$admission->getInscription()->first()->getCoDirection() || $admission->getInscription()->first()->getCoDirecteur(); } return $admission->isDossierComplet() && $directeur && $coDirecteur; }, 'enabled' => null, 'enabled_as_dql' => null, Loading Loading @@ -393,3 +400,4 @@ class ModuleConfig } } } Loading
CHANGELOG.md +8 −0 Changes for CHANGELOG.md: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Journal des modifications ========================= 8.0.0 ----- - Nouveau module Admission (Formulaire permettant de candidater à un parcours doctoral) - Saisie des informations concernant l'étudiant, son parcours, son inscription et ses spécifités et le financement - Dépôt de pièces justificatives - Remplissage et validation en ligne de la convention de formation doctorale - Validation en ligne de la charte doctorale 7.0.1 ----- - [FIX] Module Substitutions : plantage de la page consacrée aux doublons (substitutions possibles). Loading
doc/release-notes/8.0.0/admission.sql 0 → 100644 +1799 −0 File added.Preview size limit exceeded, changes collapsed. Show changes
module/Admission/Sql/admission.sql +39 −6 Changes for module/Admission/Sql/admission.sql: 39 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -452,6 +452,34 @@ create table IF NOT EXISTS admission_validation ); --------------------------- Avis du dossier d'admission --------------------------- DELETE FROM unicaen_avis_complem WHERE avis_id IN (SELECT id FROM unicaen_avis WHERE avis_valeur_id IN (SELECT ua.avis_valeur_id FROM unicaen_avis ua JOIN unicaen_avis_valeur uav ON ua.avis_valeur_id = uav.id WHERE uav.code LIKE 'AVIS_ADMISSION_%')); DELETE FROM unicaen_avis WHERE avis_valeur_id IN (SELECT ua.avis_valeur_id FROM unicaen_avis ua JOIN unicaen_avis_valeur uav ON ua.avis_valeur_id = uav.id WHERE uav.code LIKE 'AVIS_ADMISSION_%'); DELETE FROM unicaen_avis_type_valeur_complem WHERE code LIKE 'AVIS_ADMISSION_%'; DELETE FROM unicaen_avis_type_valeur WHERE avis_valeur_id IN (SELECT id FROM unicaen_avis_valeur WHERE code LIKE 'AVIS_ADMISSION_%'); DELETE FROM unicaen_avis_type WHERE code LIKE 'AVIS_ADMISSION_%'; DELETE from unicaen_avis_valeur where code LIKE 'AVIS_ADMISSION_%'; create table admission_avis ( Loading Loading @@ -513,7 +541,8 @@ from tmp, unicaen_avis_type_valeur tv join unicaen_avis_type t on t.id = tv.avis_type_id and t.code = 'AVIS_ADMISSION_DIR_THESE' join unicaen_avis_valeur v on v.id = tv.avis_valeur_id and v.code in ( 'AVIS_ADMISSION_VALEUR_NEGATIF' 'AVIS_ADMISSION_VALEUR_NEGATIF', 'AVIS_ADMISSION_VALEUR_INCOMPLET' ) ON CONFLICT DO NOTHING; Loading Loading @@ -569,7 +598,8 @@ from tmp, unicaen_avis_type_valeur tv join unicaen_avis_type t on t.id = tv.avis_type_id and t.code = 'AVIS_ADMISSION_CODIR_THESE' join unicaen_avis_valeur v on v.id = tv.avis_valeur_id and v.code in ( 'AVIS_ADMISSION_VALEUR_NEGATIF' 'AVIS_ADMISSION_VALEUR_NEGATIF', 'AVIS_ADMISSION_VALEUR_INCOMPLET' ) ON CONFLICT DO NOTHING; Loading Loading @@ -624,7 +654,8 @@ from tmp, unicaen_avis_type_valeur tv join unicaen_avis_type t on t.id = tv.avis_type_id and t.code = 'AVIS_ADMISSION_DIR_UR' join unicaen_avis_valeur v on v.id = tv.avis_valeur_id and v.code in ( 'AVIS_ADMISSION_VALEUR_NEGATIF' 'AVIS_ADMISSION_VALEUR_NEGATIF', 'AVIS_ADMISSION_VALEUR_INCOMPLET' ) ON CONFLICT DO NOTHING; Loading Loading @@ -681,7 +712,8 @@ from tmp, unicaen_avis_type_valeur tv join unicaen_avis_type t on t.id = tv.avis_type_id and t.code = 'AVIS_ADMISSION_DIR_ED' join unicaen_avis_valeur v on v.id = tv.avis_valeur_id and v.code in ( 'AVIS_ADMISSION_VALEUR_NEGATIF' 'AVIS_ADMISSION_VALEUR_NEGATIF', 'AVIS_ADMISSION_VALEUR_INCOMPLET' ) ON CONFLICT DO NOTHING; Loading Loading @@ -740,7 +772,8 @@ from tmp, unicaen_avis_type_valeur tv join unicaen_avis_type t on t.id = tv.avis_type_id and t.code = 'AVIS_ADMISSION_PRESIDENCE' join unicaen_avis_valeur v on v.id = tv.avis_valeur_id and v.code in ( 'AVIS_ADMISSION_VALEUR_NEGATIF' 'AVIS_ADMISSION_VALEUR_NEGATIF', 'AVIS_ADMISSION_VALEUR_INCOMPLET' ) ON CONFLICT DO NOTHING; Loading Loading @@ -1529,7 +1562,7 @@ VALUES ('ADMISSION_VALIDATION_SUPPRIMEE', null, 'Admission\Provider\Template'); INSERT INTO public.unicaen_renderer_template (code, description, document_type, document_sujet, document_corps, document_css, namespace) VALUES ('ADMISSION_VALIDATION_SUPPRIMEE', VALUES ('ADMISSION_NOTIFICATION_DECLARATION_DOSSIER_INCOMPLET', '<p>Notification lorsque qu''un avis émis est ''Dossier incomplet'' lors du circuit de signatures du dossier d''admission</p>', 'mail', 'Le dossier d''admission de VAR[Individu#Denomination] est incomplet', e'<p>Bonjour,</p> <p>Ceci est un mail envoyé automatiquement par l''application ESUP-SyGAL.</p> Loading
module/Admission/src/Admission/Assertion/AdmissionOperationAbstractAssertion.php +8 −0 Changes for module/Admission/src/Admission/Assertion/AdmissionOperationAbstractAssertion.php: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -50,6 +50,14 @@ class AdmissionOperationAbstractAssertion extends AdmissionAbstractAssertion ); } protected function assertDirectionAdmission(Admission $admission) { $this->assertTrue( in_array($admission->getEtat()->getCode(), [Admission::ETAT_EN_COURS_SAISIE, Admission::ETAT_EN_COURS_VALIDATION]), "Le dossier d'admission doit être en cours" ); } protected function assertDossierCompletAdmission(AdmissionValidation $admissionValidation) { //cette condition ne concerne pas la première validation du dossier Loading
module/Admission/src/Admission/Config/ModuleConfig.php +9 −1 Changes for module/Admission/src/Admission/Config/ModuleConfig.php: 9 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -76,7 +76,14 @@ class ModuleConfig 'code' => TypeValidation::CODE_VALIDATION_GESTIONNAIRE, 'role' => [Role::CODE_ADMIN_TECH, Role::CODE_GEST_ED], 'pre_condition' => function(Admission $admission) { return $admission->isDossierComplet(); $directeur = null; $coDirecteur = null; //Il faut que le directeur et le co-directeur (le cas échéant) doivent-être enregistrés en BDD pour pouvoir effectuer cette validation if($admission->getInscription()->first()){ $directeur = $admission->getInscription()->first()->getDirecteur(); $coDirecteur = !$admission->getInscription()->first()->getCoDirection() || $admission->getInscription()->first()->getCoDirecteur(); } return $admission->isDossierComplet() && $directeur && $coDirecteur; }, 'enabled' => null, 'enabled_as_dql' => null, Loading Loading @@ -393,3 +400,4 @@ class ModuleConfig } } }