1 # -*- encoding: utf-8 -*-
4 from django
.db
.models
import Q
6 from auf
.django
.references
import models
as ref
8 from project
.groups
import get_employe_from_user
9 from project
.permissions
import user_gere_obj_de_sa_region
10 from project
.rh
import models
as rh
16 def get_query(self
, q
, request
):
17 pays
= ref
.Pays
.objects
.filter(
18 Q(nom__icontains
=q
) |
Q(code__icontains
=q
)
22 def format_result(self
, pays
):
25 def format_item(self
, pays
):
26 return self
.format_result(pays
)
28 def get_objects(self
, ids
):
29 return ref
.Pays
.objects
.filter(code__in
=ids
)
32 class Implantation(object):
34 def get_query(self
, q
, request
):
35 implantations
= ref
.Implantation
.objects
.filter(
36 Q(nom__icontains
=q
) |
Q(nom_court__icontains
=q
) |
37 Q(nom_long__icontains
=q
) |
Q(zone_administrative__nom__icontains
=q
)
39 if user_gere_obj_de_sa_region(request
.user
):
40 employe
= get_employe_from_user(request
.user
)
41 implantations
= implantations
.filter(
42 zone_administrative
=employe
.implantation
.zone_administrative
46 def format_result(self
, implantation
):
47 statut
= implantation
.statut
48 if implantation
.statut
== 0:
49 statut
= u
"Jamais ouverte OU fermée"
50 if implantation
.statut
== 1:
52 if implantation
.statut
== 2:
54 if implantation
.statut
== 3:
55 statut
= u
"Ouverte imminente"
57 return u
"%s (%s) [%s]" % (implantation
.nom
, implantation
.id, statut
)
59 def format_item(self
, implantation
):
60 return self
.format_result(implantation
)
62 def get_objects(self
, ids
):
63 return ref
.Implantation
.objects
.filter(id__in
=ids
)
66 class TypePoste(object):
68 def get_query(self
, q
, request
):
69 typepostes
= rh
.TypePoste
.objects
.filter(
70 Q(nom__icontains
=q
) |
Q(nom_feminin__icontains
=q
) |
71 Q(categorie_emploi__nom__icontains
=q
)
75 def format_result(self
, typeposte
):
76 return unicode(typeposte
)
78 def format_item(self
, typeposte
):
79 return self
.format_result(typeposte
)
81 def get_objects(self
, ids
):
82 return rh
.TypePoste
.objects
.filter(id__in
=ids
)
87 def get_query(self
, q
, request
):
88 postes
= rh
.Poste
.objects
.ma_region_ou_service(request
.user
).filter(
89 Q(nom__icontains
=q
) |
Q(type_poste__nom__icontains
=q
) |
90 Q(rh_dossiers__employe__nom__icontains
=q
) |
91 Q(rh_dossiers__employe__prenom__icontains
=q
)
93 return postes
.distinct()
95 def format_result(self
, poste
):
98 def format_item(self
, poste
):
99 return self
.format_result(poste
)
101 def get_objects(self
, ids
):
102 return rh
.Poste
.objects
.filter(id__in
=ids
)
105 class ValeurPoint(object):
107 def get_query(self
, q
, request
):
108 points
= rh
.ValeurPoint
.objects \
109 .select_related('devise', 'implantation') \
111 Q(devise__code__icontains
=q
) |
112 Q(implantation__nom__icontains
=q
)
116 def format_result(self
, point
):
117 return unicode(point
)
119 def format_item(self
, point
):
120 return self
.format_result(point
)
122 def get_objects(self
, ids
):
123 return rh
.ValeurPoint
.objects
.filter(id__in
=ids
)
126 class Employe(object):
128 def get_query(self
, q
, request
):
129 employes
= rh
.Employe
.objects
.filter(
130 Q(nom__icontains
=q
) |
Q(prenom__icontains
=q
) |
131 Q(nom_affichage__icontains
=q
)
135 def format_result(self
, employe
):
136 return unicode(employe
)
138 def format_item(self
, employe
):
139 return self
.format_result(employe
)
141 def get_objects(self
, ids
):
142 return rh
.Employe
.objects
.filter(id__in
=ids
)
145 class Dossier(object):
147 def get_query(self
, q
, request
):
148 return rh
.Dossier
.objects
.ma_region_ou_service(request
.user
).filter(
149 (Q(poste__nom
=q
) |
Q(poste__type_poste__nom
=q
) |
150 Q(employe__nom__icontains
=q
) |
Q(employe__prenom__icontains
=q
) |
151 Q(employe__nom_affichage__icontains
=q
)) &
154 datetime
.date
.today() -
155 datetime
.timedelta(365)
161 def format_result(self
, dossier
):
162 return unicode(dossier
)
164 def format_item(self
, dossier
):
165 return self
.format_result(dossier
)
167 def get_objects(self
, ids
):
168 return rh
.Dossier
.objects
.filter(id__in
=ids
)