Rapports trie, WIP et optimisation de requete SQL
[auf_rh_dae.git] / project / lib.py
1 # -*- encoding: utf-8 -*-
2
3 import datamaster_modeles.models as ref
4 import rh.models as rh
5 from operator import itemgetter
6
7 def get_employe_from_user(user):
8 """
9 Retourne un employé AUF (rh.Employe) à partir de son user Django.
10 """
11 try:
12 ref_employe = ref.Authentification.objects.get(courriel=user.email).id
13 employe = rh.Employe.objects.get(id=ref_employe.id)
14 ref_employe = ref.Employe.objects.get(id=employe.id)
15 employe.courriel = ref_employe.courriel
16 employe.tel_pro_poste = ref_employe.telephone_poste
17 employe.tel_pro_ip = ref_employe.telephone_ip
18 except:
19 #raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email)
20 employe = rh.Employe.objects.none()
21 return employe
22
23 def get_employe_from_id(id):
24 """
25 Retourne un employé AUF (rh.Employe) à partir de son id.
26 """
27 try:
28 employe = rh.Employe.objects.get(id=id)
29 employe.courriel = ref.Employe.objects.get(id=employe.id).courriel
30 except:
31 employe = rh.Employe.objects.none()
32 return employe
33
34 def safe_create_groupe(name=None, id=None):
35 """
36 Création d'un groupe prédéfini. Retourne None, quand la création
37 ne peut se faire. (C'est le cas au syncdb, quand la table de groupe
38 n'a pas été créée encore).
39 """
40 try:
41 if name:
42 grp, created = Group.objects.get_or_create(name=name)
43 elif id :
44 grp, created = Group.objects.get_or_create(id=id)
45 except:
46 return None
47 return grp
48