Commit 8b653a77 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Notes de version.

parent 75f8592e
Loading
Loading
Loading
Loading
+105 −43
Original line number Diff line number Diff line
# Changelog
Journal des modifications
=========================

## v1.0.0 (24/05/2018)

- [FEATURE] Nouveaux services `structure`, `etablissement`, `unite-recherche`, `ecole-doctorale`.
- [BUGFIX]  Le schéma Oracle dans lequel se trouve les vues sources est désormais spécifié dans la config.
- [CLEANUP] Abandon du prefixe de nommage des vues sources `OBJECTH_*` au profit de `SYGAL_*`. 
v1.2.5 (09/04/2019)
-------------------

## v1.1.0 (13/09/2018)
### Corrections

- [FEATURE] Import des établissements des (co-)directeurs de thèses, rapporteurs et membres du jury, 
nécessaires à la génération des pages de couverture.
- [BUGFIX] Le script de la vue SYGAL_ACTEUR ne produisait pas des id totalement uniques !
- Abandon de la colonne `COD_ANU_PRM_IAE` dans `SYGAL_THESE` qui est redondante du fait qu'une vue
  `SYGAL_THESE_ANNEE_UNIV` existe. De plus, cette colonne remontait une année de 1ere inscription erronée en cas 
  de changement de discipline.

## v1.1.1 (21/09/2018)
### Améliorations

- Pagination des données retournées par les services, c'est plus sérieux.
- Pour ceux qui ont Apogée, amélioration du temps de réponse du service "individu" 
grâce à l'utilisation d'une vue matérialisée des emails des individus, rafraîchie toutes les 10 minutes.
- Mise à jour des scripts SQL, et documentation.
- Déplacement des scripts SQL propre à chaque établissement dans le dépôt consacré au déploiement du ws. 

## v1.1.2 (04/10/2018)

- [BUGFIX] Les données n'étaient pas triées correctement, entraînant la présence possible du même enregistrement
sur 2 pages distinctes retournées par le web service.
v1.2.4 (01/02/2019)
-------------------

## v1.1.3 (22/10/2018)
### Corrections
 
- [BUGFIX] Correction du script de la vue Apogée SYGAL_INDIVIDU qui inversait le nom usuel et le nom de naissance 
des acteurs.
- Correction du numéro de version '1.2.2' retournée par le WS alors qu'il était en version 1.2.3. 

## v1.2.0 (08/11/2018)

- [FEATURE] Sygal peut désormais avoir connaissance de tous les acteurs des thèses (ex: co-directeurs sur les thèses de Rouen) 
            tout en permettant à l'établissement source de conserver sa propre codification des rôles des acteurs.
- [FEATURE] Deux nouveaux services apparaissent pour que Sygal puisse importer les informations concernant le financement 
            des thèses en cours : 'financement' et 'origine-financement'. 
- [FEATURE] Le service 'version' retourne désormais la version déployée effective (à l'aide de git).

## v1.2.1 (29/11/2018)

- [FEATURE] Une nouvelle colonne apparaît dans la vue SYGAL_INDIVIDU permettant notamment de détecter les acteurs que 
            Sygal ne sera pas en mesure de reconnaître à la connexion.
- [FEATURE] Une nouvelle vue SYGAL_TITRE_ACCES apparaît pour fournir les titres d'accès à l'inscription en thèse.  
- [FEATURE] Pour les corrections attendues d'une thèse, on parle désormais de corrections facultatives ou obligatoires, 
            plutôt que mineures ou majeures. La vue `SYGAL_THESE` est retouchée en ce sens.

## v1.2.2 (21/12/2018)

- [FEATURE] Nouvelle colonne dans la vue SYGAL_THESE : année universitaire de première inscription en thèse.
- [FEATURE] Nouvelle vue SYGAL_THESE_ANNEE_UNIV : liste pour chaque thèse de toutes les années universitaires 
            où le doctorant était inscrit en thèse.
v1.2.3 (29/01/2019)
-------------------

## v1.2.3 (29/01/2019)
### Nouveautés
 
- [FEATURE] La vue `SYGAL_FINANCEMENT` tente une "synthèse" des financements. 
- La vue `SYGAL_FINANCEMENT` tente une "synthèse" des financements. 

    L'idée est de ne retenir qu'une année (la plus ancienne) par thèse et par origine de financement :
    - en concaténant les observations (COMPLEMENT_FINANCEMENT)
@@ -63,6 +41,90 @@ des acteurs.
    On n'exclue plus les financements pour lesquels l'année n'est pas renseignée. 
    Quand le cas se présente on force par la 1ère année d'inscription administrative en thèse.

## v1.2.4 (01/02/2019)

- [BUGFIX] Correction du numéro de version '1.2.2' retournée par le WS alors qu'il était en version 1.2.3. 
v1.2.2 (21/12/2018)
-------------------

### Nouveautés
 
- Nouvelle colonne dans la vue SYGAL_THESE : année universitaire de première inscription en thèse.
- Nouvelle vue SYGAL_THESE_ANNEE_UNIV : liste pour chaque thèse de toutes les années universitaires 
où le doctorant était inscrit en thèse.


v1.2.1 (29/11/2018)
-------------------

### Nouveautés
 
- Une nouvelle colonne apparaît dans la vue SYGAL_INDIVIDU permettant notamment de détecter les acteurs que 
Sygal ne sera pas en mesure de reconnaître à la connexion.
- Une nouvelle vue SYGAL_TITRE_ACCES apparaît pour fournir les titres d'accès à l'inscription en thèse.  
- Pour les corrections attendues d'une thèse, on parle désormais de corrections facultatives ou obligatoires, 
plutôt que mineures ou majeures. La vue `SYGAL_THESE` est retouchée en ce sens.


v1.2.0 (08/11/2018)
-------------------

### Nouveautés
 
- Sygal peut désormais avoir connaissance de tous les acteurs des thèses (ex: co-directeurs sur les thèses de Rouen) 
tout en permettant à l'établissement source de conserver sa propre codification des rôles des acteurs.
- Deux nouveaux services apparaissent pour que Sygal puisse importer les informations concernant le financement 
des thèses en cours : 'financement' et 'origine-financement'. 
- Le service 'version' retourne désormais la version déployée effective (à l'aide de git).


v1.1.3 (22/10/2018)
-------------------

### Corrections
 
- Correction du script de la vue Apogée SYGAL_INDIVIDU qui inversait le nom usuel et le nom de naissance 
des acteurs.


v1.1.2 (04/10/2018)
-------------------

### Corrections
 
- Les données n'étaient pas triées correctement, entraînant la présence possible du même enregistrement
sur 2 pages distinctes retournées par le web service.


v1.1.1 (21/09/2018)
-------------------

### Corrections

- Pagination des données retournées par les services, c'est plus sérieux.
- Pour ceux qui ont Apogée, amélioration du temps de réponse du service "individu" 
grâce à l'utilisation d'une vue matérialisée des emails des individus, rafraîchie toutes les 10 minutes.


v1.1.0 (13/09/2018)
-------------------

### Nouveautés
 
- Import des établissements des (co-)directeurs de thèses, rapporteurs et membres du jury, 
nécessaires à la génération des pages de couverture.

### Corrections

- Le script de la vue SYGAL_ACTEUR ne produisait pas des id totalement uniques !


v1.0.0 (24/05/2018)
-------------------

### Nouveautés
 
- Nouveaux services `structure`, `etablissement`, `unite-recherche`, `ecole-doctorale`.

### Corrections
  
- Le schéma Oracle dans lequel se trouve les vues sources est désormais spécifié dans la config.
- Abandon du prefixe de nommage des vues sources `OBJECTH_*` au profit de `SYGAL_*`. 
+131 −0
Original line number Diff line number Diff line
v1.2.5
======

Sources PHP
-----------

Sur le serveur, placez-vous dans le répertoire du web service (sans doute `/var/www/sygal-import-ws`) 
puis lancez les commandes suivantes pour installer la nouvelle version :
```bash
git fetch && git fetch --tags && git checkout --force 1.2.5 && 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`

Base de données
---------------

### Apogée

La vue `SYGAL_THESE` doit être mise à jour car la colonne `COD_ANU_PRM_IAE` est redondante du fait qu'une vue
`SYGAL_THESE_ANNEE_UNIV` dédiée existe. De plus, cette colonne remontait une année de 1ere inscription erronée en cas 
de changement de discipline.

```sql
create view SYGAL_THESE as
with inscription_administrative as (
    select distinct
      ths.cod_ind,
      iae.cod_dip,
      iae.cod_vrs_vdi
    from these_hdr_sout ths
           join ins_adm_etp    iae on iae.cod_ind = ths.cod_ind and ( iae.cod_dip, iae.cod_vrs_vdi ) in ( ( ths.cod_dip, ths.cod_vrs_vdi ), ( ths.cod_dip_anc, ths.cod_vrs_vdi_anc ) )
           join diplome        dip on dip.cod_dip = iae.cod_dip
           join typ_diplome    tpd on tpd.cod_tpd_etb = dip.cod_tpd_etb
    where ths.cod_ths_trv     =  '1'  -- Exclusion des travaux
      and iae.eta_iae         =  'E'  -- Inscription administrative non annulee
      and iae.eta_pmt_iae     =  'P'  -- Inscription administrative payee
      and dip.cod_tpd_etb     in ( '39', '40' )
      and tpd.eta_ths_hdr_drt =  'T'  -- Inscription en these
      and tpd.tem_sante       =  'N'  -- Exclusion des theses d exercice
    ),
    hierarchie_structures as (
      select
        cod_cmp_inf,
        cod_cmp_sup
      from cmp_cmp
      where connect_by_isleaf = 1
      connect by prior cod_cmp_sup = cod_cmp_inf
      ),
    ancienne_these as (
      select distinct
        cod_ind,
        cod_dip_anc,
        cod_vrs_vdi_anc,
        'A' eta_ths
      from these_hdr_sout
      where cod_ths_trv = '1'
        and cod_dip_anc is not null
      )

    select
      'apogee' as source_id,                            -- Id de la source

      ---------- Enregistrement de la these --------
      ths.cod_ths as id,                                -- Identifiant de la these
      case when ths.eta_ths = 'S' and nvl ( ths.dat_sou_ths, sysdate + 1 ) > sysdate
             then 'E' else ths.eta_ths end eta_ths,     -- Etat de la these (E=En cours, A=Abandonnee, S=Soutenue, U=Transferee)
      ind.cod_etu as doctorant_id,                      -- Identifiant du doctorant
      ths.cod_dis,                                      -- Code discipline
      dis.lib_int1_dis,                                 -- Libellé discipline
      ths.lib_ths,                                      -- Titre de la these
      ths.cod_lng,                                      -- Code langue etrangere du titre
      ths.dat_deb_ths,                                  -- Date de 1ere inscription

      edo.cod_nat_edo as ecole_doct_id,                 -- Identifiant de l'ecole doctorale
      ths.cod_eqr as unite_rech_id,                     -- Identifiant de l'unité de recherche principale

      ----------- Cotutelle ----------
      pay.lib_pay,                                      -- Denomination pays de cotutelle
      nvl ( etb.lib_web_etb, etb.lib_etb ) lib_etb_cot, -- Denomination etablissement de cotutelle
      ths.tem_avenant,                                  -- Avenant a la convention de cotutelle (O/N)

      ------- Organisation de la soutenance ------
      ths.dat_prev_sou,                                 -- Date previsionnelle de soutenance
      ths.tem_sou_aut_ths,                              -- Soutenance autorisee (O/N/null)
      ths.dat_aut_sou_ths,                              -- Date d autorisation de soutenance
      ths.dat_sou_ths,                                  -- Date de soutenance de la these

      ---------- Confidentialite --------
      ths.dat_fin_cfd_ths,                              -- Date de fin de confidentialite de la these

      ---------- Jury et resultats --------
      tre.cod_neg_tre,                                  -- Resultat positif (1) ou non (0)
      ths.eta_rpd_ths,                                  -- Reproduction de la these ( O=Oui / C=Oui avec corrections / N=Non )
      decode(ths.eta_rpd_ths,
             'N', 'obligatoire',
             'C', 'facultative',
             null) as correction_possible                    -- Témoin de corrections attendues

    from inscription_administrative iae
           join individu                   ind on ind.cod_ind = iae.cod_ind
           join version_diplome            vdi on vdi.cod_dip = iae.cod_dip and vdi.cod_vrs_vdi = iae.cod_vrs_vdi
           join these_hdr_sout             ths on ths.cod_ind = iae.cod_ind and ths.cod_dip = iae.cod_dip and ths.cod_vrs_vdi = iae.cod_vrs_vdi
           left join ancienne_these        anc on anc.cod_ind = ths.cod_ind and anc.cod_dip_anc = ths.cod_dip and anc.cod_vrs_vdi_anc = ths.cod_vrs_vdi and anc.eta_ths = ths.eta_ths
           left join annee_uni             ans on ans.cod_anu = ths.daa_fin_ths
           left join ecole_doctorale       edo on edo.cod_edo = ths.cod_edo
           left join secteur_rch           ser on ser.cod_ser = ths.cod_ser
           left join equipe_rch            eqr on eqr.cod_eqr = ths.cod_eqr
           left join resultat_vdi          rvi on rvi.cod_ind = iae.cod_ind and rvi.cod_dip = iae.cod_dip and rvi.cod_vrs_vdi = iae.cod_vrs_vdi and rvi.cod_ses = '0' and rvi.cod_adm = '1' and rvi.cod_tre is not null
           left join annee_uni             anr on anr.cod_anu = rvi.cod_anu
           left join typ_resultat          tre on tre.cod_tre = rvi.cod_tre
           left join mention               men on men.cod_men = rvi.cod_men
           left join hierarchie_structures ccm on ccm.cod_cmp_inf = ths.cod_cmp
           left join composante            cmp on cmp.cod_cmp = nvl ( ccm.cod_cmp_sup, ths.cod_cmp )
           left join diplome_sise          dis on dis.cod_dis = ths.cod_dis
           left join etablissement         etb on etb.cod_etb = ths.cod_etb
           left join pays                  pay on pay.cod_pay = ths.cod_pay
           left join etablissement         sou on sou.cod_etb = ths.cod_etb_sou
           left join etablissement         ori on ori.cod_etb = ths.cod_etb_origine
           left join langue                lng on lng.cod_lng = ths.cod_lng
    where
        ths.cod_ths_trv = '1' and --  Exclusion des travaux
        anc.cod_dip_anc is null
/
```

### Physalis

Supprimer la colonne `COD_ANU_PRM_IAE` de la vue `SYGAL_THESE`.