Commit a34cdc71 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Abandon de la colonne THESE.ANNEE_UNIV_1ERE_INSC redondante avec la table THESE_ANNEE_UNIV.

Ce qui corrige en plus le problème d'année universitaire de 1ere inscription erronée en cas de changement de discipline.
Nouvelle vue V_THESE_ANNEE_UNIV_FIRST facilitant notamment le filtrage des thèses.
parent 64ed13ed
Loading
Loading
Loading
Loading

CHANGELOG.md

0 → 100644
+20 −0
Original line number Diff line number Diff line
# Journal des modifications

Avant la version 1.1.4, le journal des modifications n'avait pas encore été découvert.

## 1.1.4 (03/04/2019)

### Nouveautés

Néant.

### Améliorations

- Suppression dans la table `THESE` de la redondance de l'année universitaire de 1ere inscription avec la table
  `THESE_ANNEE_UNIV`. La colonne `ANNEE_UNIV_1ERE_INSC` n'est plus utilisée, vaut toujours NULL et disparaîtra dans 
  une version ultérieure. 

### Corrections

- Résolution du problème de l'année universitaire de 1ere inscription erronée en cas de changement de discipline.
  Requiert la version 1.2.5 du web service d'import.
+2 −0
Original line number Diff line number Diff line
@@ -3,3 +3,5 @@
- [Initialisation de la base de données](database/README.md)

- [Ligne de commande](cli.md)

- [Notes de versions](release-notes)
 No newline at end of file
+56 −0
Original line number Diff line number Diff line
# v1.1.4

## 1. Sur le serveur d'application

- Désactivez l'import de données périodique éventuel en commentant la ligne concernée dans la configuration CRON. 
Exemple dans un fichier `/etc/cron.d/sygal` :
```
#*/20 * * * * root /usr/bin/php $APP_DIR/public/index.php import-all --etablissement=UCN --synchronize=1 --breakOnServiceNotFound=0 1> /tmp/cron-sygal-import-ws-UCN.log  2>&1
```
 
- Mettez l'application en mode maintenance en agissant dans le fichier de configuration
`config/autolad/local.php` sur le tableau `['unicaen-app']['maintenance']`.
  
- Placez-vous dans le répertoire de l'application puis lancez les commandes suivantes 
pour installer la nouvelle version :
```bash
git fetch && git fetch --tags && git checkout --force 1.1.4 && 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 pour mettre à jour le schéma de l'application :

```sql

--
-- Vue sélectionnant les lignes de la table THESE_ANNEE_UNIV correspondant à la 1ère année universitaire d'inscription.
-- Il ne peut y avoir qu'une seule ligne par thèse.
--
create or replace view V_THESE_ANNEE_UNIV_FIRST as
  with firsts(SOURCE_CODE) as (
    select distinct first_value(SOURCE_CODE) OVER (PARTITION BY THESE_ID ORDER BY ANNEE_UNIV)
    from THESE_ANNEE_UNIV
  )
  select au.*
  from THESE_ANNEE_UNIV au
    join firsts fi on au.SOURCE_CODE = fi.SOURCE_CODE
/
```

## 3. Sur le serveur d'application

- Dans le répertoire de l'application, lancez manuellement l'import des thèses pour votre établissement :
```bash
php public/index.php import --service=these --etablissement=<code_de_votre_établissement> --synchronize=1
```
Le code de votre établissement est la clé spécifiée dans le tableau `['import-api']['etablissements']` du fichier 
de config `config/autolad/local.php`.

- Sortez l'application du mode maintenance.

- Réactivez l'import de données périodique éventuel.
+3 −2
Original line number Diff line number Diff line
<?php

use Application\Assertion\AssertionAbstractFactory;
use Application\Controller\Factory\TheseConsoleControllerFactory;
use Application\Controller\Factory\TheseControllerFactory;
use Application\Controller\Factory\TheseObserverControllerFactory;
@@ -27,7 +26,8 @@ use Application\Service\ServiceAwareInitializer;
use Application\Service\These\Factory\TheseObserverServiceFactory;
use Application\Service\These\Factory\TheseRechercheServiceFactory;
use Application\Service\These\Factory\TheseServiceFactory;
use Application\Service\Url\UrlServiceFactory;
use Application\Service\TheseAnneeUniv\TheseAnneeUnivService;
use Application\Service\TheseAnneeUniv\TheseAnneeUnivServiceFactory;
use Application\View\Helper\Url\UrlTheseHelperFactory;
use UnicaenAuth\Guard\PrivilegeController;
use UnicaenAuth\Provider\Rule\PrivilegeRuleProvider;
@@ -1012,6 +1012,7 @@ return [
            'TheseRechercheService'        => TheseRechercheServiceFactory::class,
            'TheseObserverService'         => TheseObserverServiceFactory::class,
            FinancementService::class      => FinancementServiceFactory::class,
            TheseAnneeUnivService::class   => TheseAnneeUnivServiceFactory::class,
        ],
    ],
    'controllers'     => [
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,6 @@
        <field name="etatThese" type="string" column="ETAT_THESE" length="20" nullable="false"/>
        <field name="resultat" type="integer" column="RESULTAT" nullable="true"/>
        <field name="datePremiereInscription" type="datetime" column="DATE_PREM_INSC" nullable="true"/>
        <field name="anneeUniv1ereInscription" type="integer" column="ANNEE_UNIV_1ERE_INSC" nullable="true"/>
        <field name="libelleDiscipline" type="string" column="LIB_DISC" length="200" nullable="true"/>
        <field name="datePrevisionSoutenance" type="datetime" column="DATE_PREV_SOUTENANCE" nullable="true"/>
        <field name="dateSoutenance" type="datetime" column="DATE_SOUTENANCE" nullable="true"/>
@@ -51,6 +50,7 @@
        <one-to-many field="validations" target-entity="Application\Entity\Db\Validation" mapped-by="these"/>
        <one-to-many field="titreAcces" target-entity="Application\Entity\Db\TitreAcces" mapped-by="these"/>
        <one-to-many field="anneesUnivInscription" target-entity="Application\Entity\Db\TheseAnneeUniv" mapped-by="these"/>
        <one-to-many field="anneesUniv1ereInscription" target-entity="Application\Entity\Db\VTheseAnneeUnivFirst" mapped-by="these"/>

        <many-to-one field="etablissement" target-entity="Application\Entity\Db\Etablissement" fetch="LAZY">
            <join-columns>
Loading