Commit 0164d819 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge tag '1.4.6' into zf3

Version 1.4.6
parents 12f53f1f e45ff74d
Loading
Loading
Loading
Loading
+15 −0
Changes for CHANGELOG.md: 15 added lines, 0 removed lines.
Original line number Diff line number Diff line
Journal des modifications
=========================

1.4.6 (29/05/2020)
------------------

- Ajout du drapeau "établissement d'inscription" et ajout des visualisations et interfaces pour gérer ce nouveau drapeau.
- Restriction du filtre des établissements sur la partie annuaire aux établissements d'inscription.
- Ajout dans structures des champs adresse, tel, fax, site web, email qui sont utilisables pour l'édition de document.
- Utilisation des nouveaux champs dans la génération de la convention de MEL (requiert unicaen/app v1.3.19).
- Amélioration de la recherche textuelle de thèses : ajout d'une liste déroulante permettant de sélectionner 
  précisément sur quels critères porte la recherche : "Titre de la thèse", "Numéro étudiant de l'auteur", 
  "Nom de l'auteur", "Prénom de l'auteur", "Nom du directeur ou co-directeur de thèse", 
  "Code national de l'école doctorale concernée (ex: 181)", "Unité de recherche concernée (ex: umr6211)".
- Correction d'un dysfonctionnement de la recherche textuelle sur les critères "numéro étudiant", "unité de recherche"
  et "école doctorale".


1.4.5 (08/04/2020)
------------------

+3 −3
Changes for config/autoload/version.global.php: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -2,9 +2,9 @@
return [
    'unicaen-app' => [
        'app_infos' => [
            'version' => '1.4.5',
            'date' => '08/04/2020',
            'version' => '1.4.6',
            'date' => '28/05/2020',
        ],
    ],
    'comment' => 'Fichier généré le 08/04/2020 à 15:56:49 avec /app/bump-version',
    'comment' => 'Fichier généré le 28/05/2020 à 11:48:35 avec /app/bump-version',
];
+65 −0
Changes for doc/release-notes/v1.4.6.md: 65 added lines, 0 removed lines.
Original line number Diff line number Diff line
# Version 1.4.6

## 1. Sur le serveur d'application
  
- Placez-vous dans le répertoire de l'application puis lancez la commande suivante 
pour installer la nouvelle version :

```bash
git fetch --tags && git checkout --force 1.4.6 && \
bash ./install.sh
```

- Selon le moteur PHP que vous avez installé, rechargez le service, exemple :
  - php7.0-fpm         : `service php7.0-fpm reload`
  - apache2-mod-php7.0 : `service apache2 reload`

## 2. Dans la base de données

- Exécutez les instructions SQL suivantes :

```sql
alter table STRUCTURE add ADRESSE varchar2(1024);
alter table STRUCTURE add TELEPHONE varchar2(64);
alter table STRUCTURE add FAX varchar2(64);
alter table STRUCTURE add EMAIL varchar2(64);
alter table STRUCTURE add SITE_WEB varchar2(512);
alter table ETABLISSEMENT add EST_ETAB_INSCRIPTION NUMBER default 0 not null;

drop materialized view MV_RECHERCHE_THESE;

CREATE MATERIALIZED VIEW "MV_RECHERCHE_THESE" ("CODE_THESE", "CODE_DOCTORANT", "CODE_ECOLE_DOCT", "HAYSTACK")
        BUILD IMMEDIATE
        USING INDEX
        REFRESH FORCE ON DEMAND
  AS with acteurs as (
    select a.these_id, i.nom_usuel, INDIVIDU_ID
    from individu i
             join acteur a on i.id = a.individu_id
             join these t on t.id = a.these_id
             join role r on a.role_id = r.id and r.CODE in ('D', 'K') -- (co)directeur de thèse
)
     select
         t.source_code code_these,
         d.source_code code_doctorant,
         ed.source_code code_ecole_doct,
         trim(UNICAEN_ORACLE.str_reduce(
                     'code-ed{' || eds.code || '} ' ||
                     'code-ur{' || urs.code || '} ' ||
                     'titre{' || t.TITRE || '} ' ||
                     'numero-doctorant{' || substr(d.SOURCE_CODE, instr(d.SOURCE_CODE, '::')+2) || '} ' ||
                     'nom-doctorant{' || id.NOM_PATRONYMIQUE || ' ' || id.NOM_USUEL || '} ' ||
                     'prenom-doctorant{' || id.PRENOM1 || '} ' ||
                     'nom-directeur{' || a.nom_usuel || '} '
         )) as haystack
     from these t
              join doctorant d on d.id = t.doctorant_id
              join individu id on id.id = d.INDIVIDU_ID
              join these th on th.source_code = t.source_code
              left join ecole_doct ed on t.ecole_doct_id = ed.id
              left join structure eds on ed.STRUCTURE_ID = eds.id
              left join UNITE_RECH ur on t.UNITE_RECH_ID = ur.id
              left join structure urs on ur.STRUCTURE_ID = urs.id
              left join acteurs a on a.these_id = t.id
              left join individu ia on ia.id = a.INDIVIDU_ID;
```
+4 −0
Changes for module/Application/src/Application/Controller/Factory/TheseControllerFactory.php: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ use Application\Form\RdvBuTheseDoctorantForm;
use Application\Form\RdvBuTheseForm;
use Application\Service\Etablissement\EtablissementService;
use Application\Service\FichierThese\FichierTheseService;
use Application\Service\File\FileService;
use Application\Service\MailConfirmationService;
use Application\Service\Notification\NotifierService;
use Application\Service\Role\RoleService;
@@ -48,6 +49,7 @@ class TheseControllerFactory
         * @var TheseRechercheService   $theseRechercheService
         * @var RoleService             $roleService
         * @var FichierTheseService     $fichierTheseService
         * @var FileService             $fileService
         * @var WorkflowService         $workflowService
         * @var NotifierService         $notifierService
         * @var EtablissementService    $etablissementService
@@ -65,6 +67,7 @@ class TheseControllerFactory
        $roleService = $container->get('RoleService');
        $uniteService = $container->get('UniteRechercheService');
        $fichierTheseService = $container->get('FichierTheseService');
        $fileService = $container->get(FileService::class);
        $workflowService = $container->get('WorkflowService');
        $etablissementService = $container->get('EtablissementService');
        $mailConfirmationService = $container->get('MailConfirmationService');
@@ -101,6 +104,7 @@ class TheseControllerFactory
        $controller->setTheseRechercheService($theseRechercheService);
        $controller->setRoleService($roleService);
        $controller->setFichierTheseService($fichierTheseService);
        $controller->setFileService($fileService);
        $controller->setWorkflowService($workflowService);
        $controller->setEtablissementService($etablissementService);
        $controller->setUniteRechercheService($uniteService);
+10 −0
Changes for module/Application/src/Application/Controller/TheseController.php: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ use Application\Form\RdvBuTheseForm;
use Application\Service\Etablissement\EtablissementServiceAwareTrait;
use Application\Service\FichierThese\Exception\ValidationImpossibleException;
use Application\Service\FichierThese\FichierTheseServiceAwareTrait;
use Application\Service\File\FileServiceAwareTrait;
use Application\Service\MailConfirmationServiceAwareTrait;
use Application\Service\Notification\NotifierServiceAwareTrait;
use Application\Service\Role\RoleServiceAwareTrait;
@@ -66,6 +67,7 @@ use Zend\View\Model\ViewModel;
class TheseController extends AbstractController
{
    use FichierTheseServiceAwareTrait;
    use FileServiceAwareTrait;
    use MessageCollectorAwareTrait;
    use NotifierServiceAwareTrait;
    use RoleServiceAwareTrait;
@@ -1431,9 +1433,17 @@ class TheseController extends AbstractController
        $libEtablissementLe = $letab;
        $libEtablissementDe = "de " . $letab;

        $etablissement = $this->etablissementService->fetchEtablissementComue();
        if ($etablissement === null) {
            $etablissement = $these->getEtablissement();
        }
        $cheminLogo = $this->fileService->computeLogoFilePathForStructure($etablissement);

        $renderer = $this->renderer;
        $exporter = new ConventionPdfExporter($renderer, 'A4');
        $exporter->setVars([
            'etablissement'      => $etablissement,
            'logo'               => $cheminLogo,
            'these'              => $these,
            'diffusion'          => $diffusion,
            'attestation'        => $attestation,
Loading