Project

General

Profile

Tâche #13520

Distribution EOLE - Scénario #13500: Assistance aux utilisateurs (42-44)

Anomalie dans les niveau de classes lors d'imports AAF

Added by Jean-Marc MELET over 5 years ago. Updated over 5 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
10/09/2015
Due date:
% Done:

100%

Estimated time:
4.00 h
Spent time:
Remaining (hours):
0.0

Description

Bonjour,

Nous avons constaté des la rentrée des incohérences faisant suite à l'importation des comptes depuis l'annuaire AAF sur plusieurs Scribes que nous n'avions jamais rencontré auparavant.
En pratique, certains niveaux sont créés qui n'ont pas lieu d'être et des élèves y sont aléatoirement déplacés (membres du groupe associé à ce niveau).
Par exemple sur un établissement des groupes de niveaux "4g" et "5g" se sont créés suite à l'import annuel du début d'année et contiennent des élèves alors que tous devraient être dans les groupes de niveaux standard "4eme" et "5eme".
Dans un autre, certaines classes générales sont considérées à tord comme segpa et inversement, ce qui crée un désordre dans la gestion des groupes d'appartenance.
Seul point commun: ceci semble toucher exclusivement les niveaux 4ème et 5ème
Apres avoir vérifié scrupuleusement le contenu des fichiers AAF des extractions nous n'avons relevé aucune anomalie, et surtout aucun critère qui pourrait différencier un éleve passé par erreur en "4g" par exemple d'un autre resté en "4eme". Dans tous les cas, la valeur de l'attribut "ENTEleveLibelleMEF" est bien "4EME" et "ENTEleveNivFormation" et "ENTEleveFiliere" sont "4EME GENERALE (N.C 4E AES)".
Nous avons pensé que ce problème pouvait apparaitre lorsque des descriptions longues sont entrées dans STSweb comme "4EME CLASSE BILANGUE" ou "4EME GENERALE (N.C 4E AES)" mais ce qui n'est pas logique c'est que certains elèves figurent dans le niveau "4g" et les autres dans "4eme" alors qu'ils ont exactement les mêmes attributs de classe dans l'AAF
J'ai aussi tenté de jeter un oeil à la moulinette /usr/share/pyshared/scribe/parsing/aaf.py mais ne suis pas parvenu à déterminer ce qui pourrait causer cette génération érronée.
Je joins une copie d'écran de l'EAD et le fichier AAF des élèves d'un cas rencontré

P.S: Je n'y crois pas trop mais pourrait-il s'agir d'effets de bord liés à l'évolution de la structure des extractions ENT2D survenue depuis le 1er septembre?

Liste groupes niveau.jpg View (205 KB) Jean-Marc MELET, 10/09/2015 06:11 PM

niveaux-avec-fichier-fourni.png View (37.4 KB) Joël Cuissinat, 10/13/2015 03:18 PM

fixniveaux.py View (415 Bytes) Joël Cuissinat, 10/26/2015 02:46 PM

History

#1 Updated by Luc Bourdot over 5 years ago

  • Target version set to sprint 2015 42-44 - Equipe PNE-SR
  • Parent task set to #13500

#2 Updated by Luc Bourdot over 5 years ago

  • Estimated time set to 4.00 h
  • Remaining (hours) set to 4.0

#3 Updated by Joël Cuissinat over 5 years ago

  • File deleted (0840803S_Complet_20151009_Eleve_0000.xml)

#4 Updated by Joël Cuissinat over 5 years ago

suppression du fichier de données nominatives après récupération ...

#5 Updated by Joël Cuissinat over 5 years ago

  • Status changed from Nouveau to En cours
  • Assigned To set to Joël Cuissinat
    groupe_mapping = {'ENTEleveMEF':'mef_id',
                      'ENTEleveLibelleMEF':'mef',
                      "ENTEleveNivFormation":'niveau',
                      "ENTEleveFiliere":'filiere',
                      "ENTEleveClasses":'classe',
    }

        # niveau (MEF)
        niveau = groupe['filiere']
        my_niveau = storage.findOrCreate(Niveau, nom=niveau)
        # classe (format AAF : "numero$classe")
        classe = groupe['classe'].split('$')[1]
        my_classe = storage.findOrCreate(Classe, nom=classe,
                                         niveau=my_niveau)

#6 Updated by Joël Cuissinat over 5 years ago

J'ai pas encore le résultat de mon import, mais j'ai bien l'impression que le problème n'est pas reproductible avec le fichier fourni...
Le nom des niveau est créé à partir de l'attribut ENTEleveFiliere tronqué au premier espace, hors celui-ci est unique pour chacun des niveau dans le fichier fourni :

$ grep ENTEleveFiliere 0840803S_Complet_20151009_Eleve_0000.xml | sort | uniq
<attr name="ENTEleveFiliere"><value>3EME GENERALE</value></attr>
<attr name="ENTEleveFiliere"><value>4EME GENERALE (N.C 4E AES)</value></attr>
<attr name="ENTEleveFiliere"><value>5EME</value></attr>
<attr name="ENTEleveFiliere"><value>6EME</value></attr>
$

Donc soit c'était un autre fichier (issu d'un export qui a eu des problèmes) soit il y a eu d'autres imports (un petit Sconet pour brouiller les pistes ?).
Plus d'informations concernant ces événements sont disponibles dans les fichiers /var/log/eole/importation.log

#8 Updated by Joël Cuissinat over 5 years ago

  • Remaining (hours) changed from 4.0 to 2.0

#9 Updated by Joël Cuissinat over 5 years ago

  • % Done changed from 0 to 50
  • Remaining (hours) changed from 2.0 to 1.0

+ étude du fichier de log fourni par mail

#10 Updated by Scrum Master over 5 years ago

  • Status changed from En cours to Résolu

#11 Updated by Scrum Master over 5 years ago

  • Status changed from Résolu to En cours

#12 Updated by Joël Cuissinat over 5 years ago

  • File fixniveaux.py View added
  • Status changed from En cours to Résolu
  • Remaining (hours) changed from 1.0 to 0.0
La façon la plus simple de remettre les choses en place est de :
  • corriger les associations classe/niveau erronées au niveau des groupes "Classe" (ie : modifier l'attribut "niveau")
  • relancer une importation AAF qui constatera (enfin) l'incohérence et affichera des lignes du type "changement de classe pour yyy.xxx de 3e3 vers 3e3"

Je joins un script qui corrige l'attribut niveau pour les classes de 5eme et de 3eme.

#13 Updated by Joël Cuissinat over 5 years ago

  • % Done changed from 50 to 100

#14 Updated by Scrum Master over 5 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF