Loading CHANGELOG.md +1 −0 Changes for CHANGELOG.md: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ Journal des modifications - Changement du lien dans le mail pour la validation des présidents : redirect + selection du rôle - [FIX] Amélioration de la robustesse de la proposition de soutenance pour les cas de th_se sans ED, sans UR ou sans ETAB - Ajout d'une vérification de la date de soutenance dans le formulaire pour prévenir des erreurs de saisie (p.e. 12/09/0022) - [FIX] Années universitaires d'inscription : les années historisées n'étaient pas écartées. 5.2.0 ----- Loading doc/release-notes/v5.2.1.md +24 −0 Changes for doc/release-notes/v5.2.1.md: 24 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -17,6 +17,30 @@ git fetch --tags && git checkout --force 5.2.1 && bash ./install.sh ## 2. Dans la base de données ```sql create or replace view v_these_annee_univ_first (id, source_code, source_id, these_id, annee_univ, histo_createur_id, histo_creation, histo_modificateur_id, histo_modification, histo_destructeur_id, histo_destruction) as WITH firsts(source_code) AS ( SELECT DISTINCT first_value(source_code) OVER (PARTITION BY these_id ORDER BY annee_univ) AS first_value FROM these_annee_univ where histo_destruction is null ) SELECT au.id, au.source_code, au.source_id, au.these_id, au.annee_univ, au.histo_createur_id, au.histo_creation, au.histo_modificateur_id, au.histo_modification, au.histo_destructeur_id, au.histo_destruction FROM these_annee_univ au JOIN firsts fi ON au.source_code::text = fi.source_code::text; /** * Rattachement à une thèse destination de tout ce qui a été saisi sur une thèse source. */ Loading module/These/src/These/Entity/Db/These.php +12 −5 Changes for module/These/src/These/Entity/Db/These.php: 12 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -1456,11 +1456,18 @@ class These implements HistoriqueAwareInterface, ResourceInterface * @param string $glue Séparateur, ex: ' - ' * @return string Ex: "2015/2016, 2016/2017, 2017/2018" */ public function getAnneesUnivInscriptionToString($glue = ', ') { return implode($glue, array_map(function(TheseAnneeUniv $tau) { return $tau->getAnneeUnivToString(); }, $this->anneesUnivInscription->toArray())); public function getAnneesUnivInscriptionToString(string $glue = ', '): string { $anneesUnivs = array_map( fn(TheseAnneeUniv $tau) => $tau->getAnneeUnivToString(), array_filter( $this->anneesUnivInscription->toArray(), fn(TheseAnneeUniv $tau) => $tau->estNonHistorise() ) ); sort($anneesUnivs); return implode($glue, $anneesUnivs); } /** Loading module/These/src/These/Service/These/TheseSearchService.php +3 −2 Changes for module/These/src/These/Service/These/TheseSearchService.php: 3 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace These\Service\These; use Application\Entity\Db\Role; use Doctrine\ORM\Query\Expr\Join; use These\Entity\Db\These; use Structure\Entity\Db\TypeStructure; use Application\Filter\AnneeUnivFormatter; Loading Loading @@ -497,11 +498,11 @@ EOS; $filterValue = $filter->getValue(); if ($filterValue === 'NULL') { $qb ->leftJoin("$alias.anneesUnivInscription", 'aui') ->leftJoin("$alias.anneesUnivInscription", 'aui', Join::WITH, 'aui.histoDestruction is null') ->andWhere('aui.anneeUniv IS NULL'); } else { $qb ->join("$alias.anneesUnivInscription", 'aui') ->join("$alias.anneesUnivInscription", 'aui', Join::WITH, 'aui.histoDestruction is null') ->andWhere('aui.anneeUniv = :anneeUniv') ->setParameter('anneeUniv', $filterValue); } Loading Loading
CHANGELOG.md +1 −0 Changes for CHANGELOG.md: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ Journal des modifications - Changement du lien dans le mail pour la validation des présidents : redirect + selection du rôle - [FIX] Amélioration de la robustesse de la proposition de soutenance pour les cas de th_se sans ED, sans UR ou sans ETAB - Ajout d'une vérification de la date de soutenance dans le formulaire pour prévenir des erreurs de saisie (p.e. 12/09/0022) - [FIX] Années universitaires d'inscription : les années historisées n'étaient pas écartées. 5.2.0 ----- Loading
doc/release-notes/v5.2.1.md +24 −0 Changes for doc/release-notes/v5.2.1.md: 24 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -17,6 +17,30 @@ git fetch --tags && git checkout --force 5.2.1 && bash ./install.sh ## 2. Dans la base de données ```sql create or replace view v_these_annee_univ_first (id, source_code, source_id, these_id, annee_univ, histo_createur_id, histo_creation, histo_modificateur_id, histo_modification, histo_destructeur_id, histo_destruction) as WITH firsts(source_code) AS ( SELECT DISTINCT first_value(source_code) OVER (PARTITION BY these_id ORDER BY annee_univ) AS first_value FROM these_annee_univ where histo_destruction is null ) SELECT au.id, au.source_code, au.source_id, au.these_id, au.annee_univ, au.histo_createur_id, au.histo_creation, au.histo_modificateur_id, au.histo_modification, au.histo_destructeur_id, au.histo_destruction FROM these_annee_univ au JOIN firsts fi ON au.source_code::text = fi.source_code::text; /** * Rattachement à une thèse destination de tout ce qui a été saisi sur une thèse source. */ Loading
module/These/src/These/Entity/Db/These.php +12 −5 Changes for module/These/src/These/Entity/Db/These.php: 12 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -1456,11 +1456,18 @@ class These implements HistoriqueAwareInterface, ResourceInterface * @param string $glue Séparateur, ex: ' - ' * @return string Ex: "2015/2016, 2016/2017, 2017/2018" */ public function getAnneesUnivInscriptionToString($glue = ', ') { return implode($glue, array_map(function(TheseAnneeUniv $tau) { return $tau->getAnneeUnivToString(); }, $this->anneesUnivInscription->toArray())); public function getAnneesUnivInscriptionToString(string $glue = ', '): string { $anneesUnivs = array_map( fn(TheseAnneeUniv $tau) => $tau->getAnneeUnivToString(), array_filter( $this->anneesUnivInscription->toArray(), fn(TheseAnneeUniv $tau) => $tau->estNonHistorise() ) ); sort($anneesUnivs); return implode($glue, $anneesUnivs); } /** Loading
module/These/src/These/Service/These/TheseSearchService.php +3 −2 Changes for module/These/src/These/Service/These/TheseSearchService.php: 3 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace These\Service\These; use Application\Entity\Db\Role; use Doctrine\ORM\Query\Expr\Join; use These\Entity\Db\These; use Structure\Entity\Db\TypeStructure; use Application\Filter\AnneeUnivFormatter; Loading Loading @@ -497,11 +498,11 @@ EOS; $filterValue = $filter->getValue(); if ($filterValue === 'NULL') { $qb ->leftJoin("$alias.anneesUnivInscription", 'aui') ->leftJoin("$alias.anneesUnivInscription", 'aui', Join::WITH, 'aui.histoDestruction is null') ->andWhere('aui.anneeUniv IS NULL'); } else { $qb ->join("$alias.anneesUnivInscription", 'aui') ->join("$alias.anneesUnivInscription", 'aui', Join::WITH, 'aui.histoDestruction is null') ->andWhere('aui.anneeUniv = :anneeUniv') ->setParameter('anneeUniv', $filterValue); } Loading