From 7e68b42b4cb9605c12ab9e8a1631ca56bca1beef Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Fri, 11 Jun 2021 14:17:42 +0200 Subject: [PATCH] Add support of some SUPANN attributes Add support of following SUPANN attributes: - supannEtuDiplome - supannEtuElementPedagogique - supannEtuEtape - supannEtuRegimeInscription - supannEtuSecteurDisciplinaire - supannEtuTypeDiplome For each, a new specific LSattr_html & LSformElement class was added, and a function is provided to generate then from supannEtuInscription attribute values. --- src/includes/addons/LSaddons.supann.php | 185 +++++++++++++++++- .../class.LSattr_html_supannEtuDiplome.php | 32 +++ ...Sattr_html_supannEtuElementPedagogique.php | 32 +++ .../class.LSattr_html_supannEtuEtape.php | 32 +++ ...LSattr_html_supannEtuRegimeInscription.php | 32 +++ ...ttr_html_supannEtuSecteurDisciplinaire.php | 32 +++ ...class.LSattr_html_supannEtuTypeDiplome.php | 32 +++ .../class.LSformElement_supannEtuDiplome.php | 39 ++++ ...ormElement_supannEtuElementPedagogique.php | 39 ++++ .../class.LSformElement_supannEtuEtape.php | 39 ++++ ...formElement_supannEtuRegimeInscription.php | 39 ++++ ...mElement_supannEtuSecteurDisciplinaire.php | 39 ++++ ...ass.LSformElement_supannEtuTypeDiplome.php | 39 ++++ 13 files changed, 610 insertions(+), 1 deletion(-) create mode 100644 src/includes/class/class.LSattr_html_supannEtuDiplome.php create mode 100644 src/includes/class/class.LSattr_html_supannEtuElementPedagogique.php create mode 100644 src/includes/class/class.LSattr_html_supannEtuEtape.php create mode 100644 src/includes/class/class.LSattr_html_supannEtuRegimeInscription.php create mode 100644 src/includes/class/class.LSattr_html_supannEtuSecteurDisciplinaire.php create mode 100644 src/includes/class/class.LSattr_html_supannEtuTypeDiplome.php create mode 100644 src/includes/class/class.LSformElement_supannEtuDiplome.php create mode 100644 src/includes/class/class.LSformElement_supannEtuElementPedagogique.php create mode 100644 src/includes/class/class.LSformElement_supannEtuEtape.php create mode 100644 src/includes/class/class.LSformElement_supannEtuRegimeInscription.php create mode 100644 src/includes/class/class.LSformElement_supannEtuSecteurDisciplinaire.php create mode 100644 src/includes/class/class.LSformElement_supannEtuTypeDiplome.php diff --git a/src/includes/addons/LSaddons.supann.php b/src/includes/addons/LSaddons.supann.php index 376745e7..631baaa8 100644 --- a/src/includes/addons/LSaddons.supann.php +++ b/src/includes/addons/LSaddons.supann.php @@ -961,6 +961,189 @@ function supannCheckEntityCouldBeDeleted($ldapObject) { return true; } +/** + * Géneration de la valeur des attributs associés à l'attribut supannEtuInscription + * + * @author Benjamin Renard + * + * @param[in] $ldapObject L'objet ldap + * @param[in] $component Le composant associés à l'attribut à généré + * @param[in] $ignore_value Valeur possible du composant qui doit être ignoré (optionnel) + * + * @retval array Les valeurs (uniques) du composant passé en paramètres trouvées dans les + * valeurs de l'attribut supannEtuInscription + */ +function generate_from_supannEtuInscription($ldapObject, $component, $ignore_value=null) { + $retval = array(); + $inscriptions = $ldapObject -> getValue('supannEtuInscription'); + LSlog :: get_logger('LSaddon_supann') -> debug( + "generate_from_supannEtuInscription($ldapObject, $component, $ignore_value): inscriptions = ". + varDump($inscriptions) + ); + if (is_array($inscriptions)) { + foreach($inscriptions as $value) { + $inscription = supannParseCompositeValue($value); + if ( + !$inscription || + !array_key_exists($component, $inscription) || + in_array($inscription[$component], $retval) || + is_empty($inscription[$component]) || + ($ignore_value && $inscription[$component] == $ignore_value) + ) + continue; + $retval[] = $inscription[$component]; + } + } + LSlog :: get_logger('LSaddon_supann') -> debug( + "generate_from_supannEtuInscription($ldapObject, $component, $ignore_value): result = '". + implode(', ', $retval)."'" + ); + return $retval; +} + +/** + * Géneration de la valeur de l'attribut supannEtuDiplome à partir des valeurs + * l'attribut supannEtuInscription. + * + * @author Benjamin Renard + * + * @param[in] $ldapObject L'objet ldap + * + * @retval array Les valeurs de l'attribut supannEtuDiplome + */ +function generate_supannEtuDiplome($ldapObject) { + return generate_from_supannEtuInscription($ldapObject, 'diplome'); +} + +/** + * Géneration de la valeur de l'attribut supannEtuTypeDiplome à partir des valeurs + * l'attribut supannEtuInscription. + * + * @author Benjamin Renard + * + * @param[in] $ldapObject L'objet ldap + * + * @retval array Les valeurs de l'attribut supannEtuTypeDiplome + */ +function generate_supannEtuTypeDiplome($ldapObject) { + return generate_from_supannEtuInscription($ldapObject, 'typedip'); +} + +/** + * Géneration de la valeur de l'attribut supannEtuRegimeInscription à partir des valeurs + * l'attribut supannEtuInscription. + * + * @author Benjamin Renard + * + * @param[in] $ldapObject L'objet ldap + * + * @retval array Les valeurs de l'attribut supannEtuRegimeInscription + */ +function generate_supannEtuRegimeInscription($ldapObject) { + return generate_from_supannEtuInscription($ldapObject, 'regimeinsc', '$'); +} + +/** + * Géneration de la valeur de l'attribut supannEtuSecteurDisciplinaire à partir des valeurs + * l'attribut supannEtuInscription. + * + * @author Benjamin Renard + * + * @param[in] $ldapObject L'objet ldap + * + * @retval array Les valeurs de l'attribut supannEtuSecteurDisciplinaire + */ +function generate_supannEtuSecteurDisciplinaire($ldapObject) { + return generate_from_supannEtuInscription($ldapObject, 'sectdisc', '-'); +} + +/** + * Géneration de la valeur de l'attribut supannEtuAnneeInscription à partir des valeurs + * l'attribut supannEtuInscription. + * + * @author Benjamin Renard + * + * @param[in] $ldapObject L'objet ldap + * + * @retval array Les valeurs de l'attribut supannEtuAnneeInscription + */ +function generate_supannEtuAnneeInscription($ldapObject) { + return generate_from_supannEtuInscription($ldapObject, 'anneeinsc'); +} + +/** + * Géneration de la valeur de l'attribut supannEtuCursusAnnee à partir des valeurs + * l'attribut supannEtuInscription. + * + * @author Benjamin Renard + * + * @param[in] $ldapObject L'objet ldap + * + * @retval array Les valeurs de l'attribut supannEtuCursusAnnee + */ +function generate_supannEtuCursusAnnee($ldapObject) { + return generate_from_supannEtuInscription($ldapObject, 'cursusann'); +} + +/** + * Géneration de la valeur de l'attribut supannEtuElementPedagogique à partir des valeurs + * l'attribut supannEtuInscription. + * + * @author Benjamin Renard + * + * @param[in] $ldapObject L'objet ldap + * + * @retval array Les valeurs de l'attribut supannEtuElementPedagogique + */ +function generate_supannEtuElementPedagogique($ldapObject) { + return generate_from_supannEtuInscription($ldapObject, 'eltpedago'); +} + +/** + * Géneration de la valeur de l'attribut supannEtuEtape à partir des valeurs + * l'attribut supannEtuInscription. + * + * @author Benjamin Renard + * + * @param[in] $ldapObject L'objet ldap + * + * @retval array Les valeurs de l'attribut supannEtuEtape + */ +function generate_supannEtuEtape($ldapObject) { + return generate_from_supannEtuInscription($ldapObject, 'etape'); +} + +/** + * Géneration de la valeur de l'attribut supannEtuDateFin à partir des valeurs + * l'attribut supannEtuInscription. + * + * @author Benjamin Renard + * + * @param[in] $ldapObject L'objet ldap + * + * @retval array Les valeurs de l'attribut supannEtuDateFin + */ +function generate_supannEtuDateFin($ldapObject) { + $values = generate_from_supannEtuInscription($ldapObject, 'datefin'); + LSlog :: get_logger('LSaddon_supann') -> debug( + "generate_supannEtuDateFin($ldapObject): value retrieved from datefin component = ".varDump($values) + ); + $max_time = NULL; + // On garde que la plus lointaine + foreach ($values as $value) { + $time = ldapDate2Timestamp($value); + if (!$time) + continue; + if (!$max_time || $time > $max_time) { + $max_time = $time; + } + } + LSlog :: get_logger('LSaddon_supann') -> debug( + "generate_supannEtuDateFin($ldapObject): result = ".varDump($max_time) + ); + return $max_time; +} + if (php_sapi_name() != 'cli') return true; @@ -968,7 +1151,7 @@ function cli_generate_supann_codeEtablissement_uai_nomenclature($command_args) { $data = file_get_contents('https://data.enseignementsup-recherche.gouv.fr/explore/dataset/fr-esr-principaux-etablissements-enseignement-superieur/download?format=json'); $items = json_decode($data, true); if (!is_array($items)) - LSlog :: fatal('Fail to retreive UAI dataset from data.enseignementsup-recherche.gouv.fr'); + LSlog :: get_logger('LSaddon_supann') -> fatal('Fail to retreive UAI dataset from data.enseignementsup-recherche.gouv.fr'); $codes = array(); foreach($items as $item) { if (!isset($item['fields']) || !isset($item['fields']['uai']) || !$item['fields']['uai']) diff --git a/src/includes/class/class.LSattr_html_supannEtuDiplome.php b/src/includes/class/class.LSattr_html_supannEtuDiplome.php new file mode 100644 index 00000000..e078e93d --- /dev/null +++ b/src/includes/class/class.LSattr_html_supannEtuDiplome.php @@ -0,0 +1,32 @@ + + */ +class LSattr_html_supannEtuDiplome extends LSattr_html { + + var $LSformElement_type = 'supannEtuDiplome'; + +} diff --git a/src/includes/class/class.LSattr_html_supannEtuElementPedagogique.php b/src/includes/class/class.LSattr_html_supannEtuElementPedagogique.php new file mode 100644 index 00000000..245ef50f --- /dev/null +++ b/src/includes/class/class.LSattr_html_supannEtuElementPedagogique.php @@ -0,0 +1,32 @@ + + */ +class LSattr_html_supannEtuElementPedagogique extends LSattr_html { + + var $LSformElement_type = 'supannEtuElementPedagogique'; + +} diff --git a/src/includes/class/class.LSattr_html_supannEtuEtape.php b/src/includes/class/class.LSattr_html_supannEtuEtape.php new file mode 100644 index 00000000..2f55e6ea --- /dev/null +++ b/src/includes/class/class.LSattr_html_supannEtuEtape.php @@ -0,0 +1,32 @@ + + */ +class LSattr_html_supannEtuEtape extends LSattr_html { + + var $LSformElement_type = 'supannEtuEtape'; + +} diff --git a/src/includes/class/class.LSattr_html_supannEtuRegimeInscription.php b/src/includes/class/class.LSattr_html_supannEtuRegimeInscription.php new file mode 100644 index 00000000..0ce8f915 --- /dev/null +++ b/src/includes/class/class.LSattr_html_supannEtuRegimeInscription.php @@ -0,0 +1,32 @@ + + */ +class LSattr_html_supannEtuRegimeInscription extends LSattr_html { + + var $LSformElement_type = 'supannEtuRegimeInscription'; + +} diff --git a/src/includes/class/class.LSattr_html_supannEtuSecteurDisciplinaire.php b/src/includes/class/class.LSattr_html_supannEtuSecteurDisciplinaire.php new file mode 100644 index 00000000..118b0edb --- /dev/null +++ b/src/includes/class/class.LSattr_html_supannEtuSecteurDisciplinaire.php @@ -0,0 +1,32 @@ + + */ +class LSattr_html_supannEtuSecteurDisciplinaire extends LSattr_html { + + var $LSformElement_type = 'supannEtuSecteurDisciplinaire'; + +} diff --git a/src/includes/class/class.LSattr_html_supannEtuTypeDiplome.php b/src/includes/class/class.LSattr_html_supannEtuTypeDiplome.php new file mode 100644 index 00000000..ac9e9d15 --- /dev/null +++ b/src/includes/class/class.LSattr_html_supannEtuTypeDiplome.php @@ -0,0 +1,32 @@ + + */ +class LSattr_html_supannEtuTypeDiplome extends LSattr_html { + + var $LSformElement_type = 'supannEtuTypeDiplome'; + +} diff --git a/src/includes/class/class.LSformElement_supannEtuDiplome.php b/src/includes/class/class.LSformElement_supannEtuDiplome.php new file mode 100644 index 00000000..a860f263 --- /dev/null +++ b/src/includes/class/class.LSformElement_supannEtuDiplome.php @@ -0,0 +1,39 @@ + + */ + +class LSformElement_supannEtuDiplome extends LSformElement_supannLabeledValue { + + var $supannNomenclatureTable = 'etuDiplome'; + +} diff --git a/src/includes/class/class.LSformElement_supannEtuElementPedagogique.php b/src/includes/class/class.LSformElement_supannEtuElementPedagogique.php new file mode 100644 index 00000000..455244ac --- /dev/null +++ b/src/includes/class/class.LSformElement_supannEtuElementPedagogique.php @@ -0,0 +1,39 @@ + + */ + +class LSformElement_supannEtuElementPedagogique extends LSformElement_supannLabeledValue { + + var $supannNomenclatureTable = 'etuElementPedagogique'; + +} diff --git a/src/includes/class/class.LSformElement_supannEtuEtape.php b/src/includes/class/class.LSformElement_supannEtuEtape.php new file mode 100644 index 00000000..93e70c51 --- /dev/null +++ b/src/includes/class/class.LSformElement_supannEtuEtape.php @@ -0,0 +1,39 @@ + + */ + +class LSformElement_supannEtuEtape extends LSformElement_supannLabeledValue { + + var $supannNomenclatureTable = 'etuEtape'; + +} diff --git a/src/includes/class/class.LSformElement_supannEtuRegimeInscription.php b/src/includes/class/class.LSformElement_supannEtuRegimeInscription.php new file mode 100644 index 00000000..877c587d --- /dev/null +++ b/src/includes/class/class.LSformElement_supannEtuRegimeInscription.php @@ -0,0 +1,39 @@ + + */ + +class LSformElement_supannEtuRegimeInscription extends LSformElement_supannLabeledValue { + + var $supannNomenclatureTable = 'etuRegimeInscription'; + +} diff --git a/src/includes/class/class.LSformElement_supannEtuSecteurDisciplinaire.php b/src/includes/class/class.LSformElement_supannEtuSecteurDisciplinaire.php new file mode 100644 index 00000000..69b2d205 --- /dev/null +++ b/src/includes/class/class.LSformElement_supannEtuSecteurDisciplinaire.php @@ -0,0 +1,39 @@ + + */ + +class LSformElement_supannEtuSecteurDisciplinaire extends LSformElement_supannLabeledValue { + + var $supannNomenclatureTable = 'etuSecteurDisciplinaire'; + +} diff --git a/src/includes/class/class.LSformElement_supannEtuTypeDiplome.php b/src/includes/class/class.LSformElement_supannEtuTypeDiplome.php new file mode 100644 index 00000000..cf80b409 --- /dev/null +++ b/src/includes/class/class.LSformElement_supannEtuTypeDiplome.php @@ -0,0 +1,39 @@ + + */ + +class LSformElement_supannEtuTypeDiplome extends LSformElement_supannLabeledValue { + + var $supannNomenclatureTable = 'etuTypeDiplome'; + +}