1 # -*- encoding: utf-8 -*-
3 from django
.db
import models
4 from django
.db
.models
import Q
5 from utils
import get_employe_from_user
6 from workflow
import MAP_GROUPE_ETATS_A_FAIRE
7 from workflow
import dae_groupes
, \
9 grp_directeurs_bureau
, \
14 grp_haute_direction
, \
15 grp_service_utilisateurs
, \
18 from rh
.managers
import DossierManager
as RHDossierManager
19 from rh
.managers
import PosteManager
as RHPosteManager
20 from rh
.managers
import PosteComparaisonManager
as RHPosteComparaisonManager
21 from rh
.managers
import DossierComparaisonManager
as RHDossierComparaisonManager
24 class TodoManagerMixin(object):
26 def mes_choses_a_faire(self
, user
):
28 employe
= get_employe_from_user(user
)
30 for g
in user
.groups
.all():
31 etats
= MAP_GROUPE_ETATS_A_FAIRE
.get(g
, ())
35 if g
== grp_service_utilisateurs
:
36 q2
&= Q(**{self
.prefixe_service
: employe
.service
})
37 elif g
not in (grp_accior
, grp_abf
, grp_haute_direction
, grp_drh
, grp_drh2
):
38 q2
&= Q(**{self
.prefixe_implantation
: employe
.implantation
.region
})
42 qs
= self
.ma_region_ou_service(user
).none()
44 qs
= self
.ma_region_ou_service(user
).filter(q
)
48 class DossierManager(RHDossierManager
, TodoManagerMixin
):
51 class PosteManager(RHPosteManager
, TodoManagerMixin
):
54 class PosteComparaisonManager(RHPosteComparaisonManager
, TodoManagerMixin
):
57 class DossierComparaisonManager(RHDossierComparaisonManager
, TodoManagerMixin
):