/
apprenant.py
34 lines (25 loc) · 1.68 KB
/
apprenant.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#Unidecode sert à nettoyer les noms/prénoms issus de la base de leurs éventuels accents.
from unidecode import unidecode as ud
#Cette classe centralise le travail sur les apprenants. Son objet est l'objet apprenant, instancié pour chaque personne.
class Apprenant:
#Pour instancier chaque objet apprenant, on utilise un tuple (id, nom, prenom, mail) issu de la requête SQL sur la table apprenants
def __init__ (self, tuple_apprenant):
self.id = tuple_apprenant[0]
self.nom = tuple_apprenant[1]
self.prenom = tuple_apprenant[2]
self.mail = tuple_apprenant[3]
#La méthode suivante est statique pour être plus simple à utiliser.
#Elle prend en paramètre la liste d'objets apprenants et une liste de mails + noms/prénoms générés.
@staticmethod
def ajouter_mails (liste_objets, liste_mail_et_noms):
#On parcourt nos instances d'apprenants dans la liste d'objets apprenants :
for x in liste_objets:
#On boucle sur la liste de mails qui doit être structurée ainsi [ mail, [ nom_généré, prenom_généré]]
for y in liste_mail_et_noms:
#On vérifie si le prénom (nettoyé) de l'objet est égal au prénom généré à partir du mail
if ud(x.prenom.lower()).replace("'", '') == y[1][0]:
#On vérifie si le nom (nettoyé) de l'objet est égal au nom généré à partir du mail
if ud(x.nom.lower()).replace("'", '') == y[1][1]:
#Si tout correspond, on peut attribuer le mail de rang y à l'objet en question.
setattr(x,"mail", y[0])
return liste_objets