.. default-role:: literal

===============
exportation AAF
===============

Manifest
---------

- `aaf.sql` schéma de la base
- `createdb.sh` création du schéma de la base à partir de `aaf.sql`
- `aaf.py` librairie de lecture du XML et d'insertion dans la base MySQL
- `parseaaf.py` : main entry point

Description du XML AAF
-----------------------

.. csv-table::
    :header: "exemple de fichier", "catégorie"

    ENT_21_Complet_20110518_Eleve_0008.xml, élèves
    ENT_21_Complet_20110518_PersRelEleve_0015.xml, responsables
    ENT_21_Complet_20110518_EtabEducNat_0000.xml, liste etab acad
    ENT_21_Complet_20110518_PersEducNat_0003.xml, profs ou administratifs


Liens et relations
-------------------

- élèves -> responsables, établissement
- administratifs -> etablissement, groupe

Validations effectuées
------------------------

L'encoding
+++++++++++

Les données du XML sont souvent encodés dans des types différents dans un même fichier
(iso-8859-1, html entities, utf-8...)

exemples de remplacements qui posent problème

::

    <attr name="ENTPersonNomPatro"><value>STE;&#352;PHAN</value></attr>
    <attr name="sn"><value>STE&#194;&#352;PHAN</value></attr
    &#176; -> ""
    &#194; -> ""
    &#352; -> ""
    &#233; -> é
    &#226; -> à
    &#233; -> é
    &#232 -> è


Champs de tables à rajouter ultérieurement
--------------------------------------------

- table `responsable`

    - mail
    - tel_portable
    - login : login ldap attribué après traitement, peut-être calculé ultérieurement

- table `administratif`

    - `login`
    - `force_login`
    - `force_password`

- table `JointureResponsableEleve`

    - resp_legal VARCHAR(50),
    - resp_financier VARCHAR(50),
    - resp_paiement VARCHAR(50),
    - pers_contact VARCHAR(50),
    - code_parente VARCHAR(50)


