Loading CHANGELOG.md +7 −1 Original line number Diff line number Diff line Loading @@ -43,3 +43,9 @@ des acteurs. - [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. doc/release-notes/v1.2.2.md 0 → 100644 +188 −0 Original line number Diff line number Diff line # v1.2.2 ## 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.2 && 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 Dans la vue `SYGAL_THESE` : - 2 colonnes sont renommées : - `cod_nat_edo` devient `ecole_doct_id` : Identifiant de l'ecole doctorale - `cod_eqr` devient `unite_rech_id` : Identifiant de l'unité de recherche principale - une nouvelle colonne apparaît : - `cod_anu_prm_iae` : C'est le code de l'année universitaire de première inscription en thèse, ex: `2015` signifie l'année universitaire 2015/2016. Cette colonne ne peut être à `null`, théoriquement. Voici le nouveau script de la vue `SYGAL_THESE` : ```sql create or replace view SYGAL_THESE as with inscription_administrative as ( select iae.cod_ind, iae.cod_dip, iae.cod_vrs_vdi, dip.lib_dip, min ( iae.cod_anu ) cod_anu_prm_iae, max ( iae.cod_anu ) cod_anu_der_iae from ins_adm_etp iae join diplome dip on dip.cod_dip = iae.cod_dip join typ_diplome tpd on tpd.cod_tpd_etb = dip.cod_tpd_etb where 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 group by iae.cod_ind, iae.cod_dip, iae.cod_vrs_vdi, dip.lib_dip ), 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 iae.cod_anu_prm_iae, -- Code annee de premiere 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 / ``` La nouvelle vue `SYGAL_THESE_ANNEE_UNIV` doit être créée : ```sql CREATE VIEW SYGAL_THESE_ANNEE_UNIV AS with old_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 distinct 'apogee' as source_id, ths.cod_ths || '_' || iae.cod_anu as id, ths.cod_ths as these_id, iae.cod_anu as annee_univ from these_hdr_sout ths left join old_these old on old.cod_ind = ths.cod_ind and old.cod_dip_anc = ths.cod_dip and old.cod_vrs_vdi_anc = ths.cod_vrs_vdi and old.eta_ths = ths.eta_ths join diplome dip on dip.cod_dip = ths.cod_dip join typ_diplome tpd on tpd.cod_tpd_etb = dip.cod_tpd_etb 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 individu ind on ind.cod_ind = iae.cod_ind where ths.cod_ths_trv = '1' -- Exclusion des travaux and old.cod_dip_anc is null and dip.cod_tpd_etb in ( '39', '40' ) and tpd.eta_ths_hdr_drt = 'T' -- Diplome de type these and tpd.tem_sante = 'N' -- Exclusion des theses d exercice and iae.eta_iae = 'E' -- Inscription administrative non annulee and iae.eta_pmt_iae = 'P' -- Inscription administrative payee / ``` ### Physalis Pour écrire la vue `SYGAL_THESE`, voir les explications concernant Apogée ci-dessus. La nouvelle vue `SYGAL_THESE_ANNEE_UNIV` doit lister pour chaque thèse toutes les années universitaires où le doctorant était inscrit en thèse. En cas de "césure" pour une thèse donnée, il devrait y avoir un trou dans les années universitaires. Voici les colonnes de cette vue : - `source_id` : identifiant unique de la source de données, en l'occurence c'est `'physalis'` - `id` : identifiant quelconque mais *unique* de la ligne dans la vue, ex: concaténation de l'identifiant unique de la thèse et du code de l'année universitaire. - `these_id` : identifiant unique de la thèse, cf. colonne `id` de la vue SYGAL_THESE. - `annee_univ` : code de l'année universitaire, ex: `2015` pour 2015/2016. Loading
CHANGELOG.md +7 −1 Original line number Diff line number Diff line Loading @@ -43,3 +43,9 @@ des acteurs. - [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.
doc/release-notes/v1.2.2.md 0 → 100644 +188 −0 Original line number Diff line number Diff line # v1.2.2 ## 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.2 && 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 Dans la vue `SYGAL_THESE` : - 2 colonnes sont renommées : - `cod_nat_edo` devient `ecole_doct_id` : Identifiant de l'ecole doctorale - `cod_eqr` devient `unite_rech_id` : Identifiant de l'unité de recherche principale - une nouvelle colonne apparaît : - `cod_anu_prm_iae` : C'est le code de l'année universitaire de première inscription en thèse, ex: `2015` signifie l'année universitaire 2015/2016. Cette colonne ne peut être à `null`, théoriquement. Voici le nouveau script de la vue `SYGAL_THESE` : ```sql create or replace view SYGAL_THESE as with inscription_administrative as ( select iae.cod_ind, iae.cod_dip, iae.cod_vrs_vdi, dip.lib_dip, min ( iae.cod_anu ) cod_anu_prm_iae, max ( iae.cod_anu ) cod_anu_der_iae from ins_adm_etp iae join diplome dip on dip.cod_dip = iae.cod_dip join typ_diplome tpd on tpd.cod_tpd_etb = dip.cod_tpd_etb where 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 group by iae.cod_ind, iae.cod_dip, iae.cod_vrs_vdi, dip.lib_dip ), 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 iae.cod_anu_prm_iae, -- Code annee de premiere 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 / ``` La nouvelle vue `SYGAL_THESE_ANNEE_UNIV` doit être créée : ```sql CREATE VIEW SYGAL_THESE_ANNEE_UNIV AS with old_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 distinct 'apogee' as source_id, ths.cod_ths || '_' || iae.cod_anu as id, ths.cod_ths as these_id, iae.cod_anu as annee_univ from these_hdr_sout ths left join old_these old on old.cod_ind = ths.cod_ind and old.cod_dip_anc = ths.cod_dip and old.cod_vrs_vdi_anc = ths.cod_vrs_vdi and old.eta_ths = ths.eta_ths join diplome dip on dip.cod_dip = ths.cod_dip join typ_diplome tpd on tpd.cod_tpd_etb = dip.cod_tpd_etb 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 individu ind on ind.cod_ind = iae.cod_ind where ths.cod_ths_trv = '1' -- Exclusion des travaux and old.cod_dip_anc is null and dip.cod_tpd_etb in ( '39', '40' ) and tpd.eta_ths_hdr_drt = 'T' -- Diplome de type these and tpd.tem_sante = 'N' -- Exclusion des theses d exercice and iae.eta_iae = 'E' -- Inscription administrative non annulee and iae.eta_pmt_iae = 'P' -- Inscription administrative payee / ``` ### Physalis Pour écrire la vue `SYGAL_THESE`, voir les explications concernant Apogée ci-dessus. La nouvelle vue `SYGAL_THESE_ANNEE_UNIV` doit lister pour chaque thèse toutes les années universitaires où le doctorant était inscrit en thèse. En cas de "césure" pour une thèse donnée, il devrait y avoir un trou dans les années universitaires. Voici les colonnes de cette vue : - `source_id` : identifiant unique de la source de données, en l'occurence c'est `'physalis'` - `id` : identifiant quelconque mais *unique* de la ligne dans la vue, ex: concaténation de l'identifiant unique de la thèse et du code de l'année universitaire. - `these_id` : identifiant unique de la thèse, cf. colonne `id` de la vue SYGAL_THESE. - `annee_univ` : code de l'année universitaire, ex: `2015` pour 2015/2016.