grp_administrateurs = safe_create_groupe(name='Administrateurs')
grp_directeurs_bureau = safe_create_groupe(name='Directeurs de bureau')
grp_drh = safe_create_groupe(name='DRH')
+grp_drh2 = safe_create_groupe(name='DRH-2')
grp_accior = safe_create_groupe(name='ACCIOR')
grp_abf = safe_create_groupe(name='ABF')
grp_haute_direction = safe_create_groupe(name='Haute direction')
grp_administrateurs,
grp_directeurs_bureau,
grp_drh,
+ grp_drh2,
grp_accior,
grp_abf,
grp_haute_direction,
POSTE_ETAT_DIRECTEUR_BUREAU = 'DIRECTEUR_BUREAU'
POSTE_ETAT_SERVICE_UTILISATEURS = 'SRV_UTILISATEURS'
POSTE_ETAT_DRH_CONTROLE = 'DRH_CONTROLE'
+POSTE_ETAT_DRH_2 = 'DRH_2'
POSTE_ETAT_DEMANDE_MODIF = 'DEMANDE_MODIF'
POSTE_ETAT_ACCIOR = 'ACCIOR'
POSTE_ETAT_ABF = 'ABF'
POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU = POSTE_ETAT_DIRECTEUR_BUREAU
POSTE_ACTION_ENVOYER_SRV_UTILISATEURS = POSTE_ETAT_SERVICE_UTILISATEURS
POSTE_ACTION_ENVOYER_DRH_CONTROLE = POSTE_ETAT_DRH_CONTROLE
+POSTE_ACTION_ENVOYER_DRH_2 = POSTE_ETAT_DRH_2
POSTE_ACTION_DEMANDE_MODIF = POSTE_ETAT_DEMANDE_MODIF
POSTE_ACTION_RETOUR_DEMANDE_MODIF = 'RETOUR_DEMANDE_MODIF'
POSTE_ACTION_ENVOYER_ACCIOR = POSTE_ETAT_ACCIOR
POSTE_ETAT_DIRECTEUR_BUREAU : u"Directeur de bureau",
POSTE_ETAT_SERVICE_UTILISATEURS : u"Service utilisateurs",
POSTE_ETAT_DRH_CONTROLE : u"Validation DRH",
+ POSTE_ETAT_DRH_2 : u"Validation DRH 2",
POSTE_ETAT_DEMANDE_MODIF : u"Demande de modification",
POSTE_ETAT_ACCIOR : u"ACCIOR",
POSTE_ETAT_ABF : u"ABF",
POSTE_ETAT_SERVICE_UTILISATEURS : u"Envoyer au service utilisateurs",
POSTE_ETAT_ADMINISTRATEUR : u"Envoyer à l'adminstrateur",
POSTE_ETAT_DRH_CONTROLE : u"Envoyer à la DRH (validation)",
+ POSTE_ETAT_DRH_2 : u"Envoyer à DRH 2",
POSTE_ETAT_DEMANDE_MODIF : u"Envoyer une demande de modification",
POSTE_ETAT_ACCIOR : u"Envoyer à l'ACCIOR",
POSTE_ETAT_ABF : u"Envoyer à l'ABF",
'etat_initial' : (POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_DIRECTEUR_BUREAU, POSTE_ETAT_SERVICE_UTILISATEURS),
'etat_final' : POSTE_ETAT_DRH_CONTROLE,
},
- POSTE_ACTION_DEMANDE_MODIF : {
+ POSTE_ACTION_ENVOYER_DRH_2 : {
'nom' : u'Envoyer',
'etat_initial' : (POSTE_ETAT_DRH_CONTROLE,),
+ 'etat_final' : POSTE_ETAT_DRH_2,
+ },
+ POSTE_ACTION_DEMANDE_MODIF : {
+ 'nom' : u'Envoyer',
+ 'etat_initial' : (POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_2),
'etat_final': POSTE_ETAT_DEMANDE_MODIF,
},
POSTE_ACTION_RETOUR_DEMANDE_MODIF : {
},
POSTE_ACTION_ENVOYER_ACCIOR : {
'nom' : u'Envoyer',
- 'etat_initial' : (POSTE_ETAT_DRH_CONTROLE,),
+ 'etat_initial' : (POSTE_ETAT_DRH_2,),
'etat_final' : POSTE_ETAT_ACCIOR,
},
POSTE_ACTION_ENVOYER_ABF : {
def acces_directeur_bureau(self, action, request):
user_groups = request.user.groups.all()
- if is_user_dans_services_centraux(request.user) and grp_drh not in user_groups:
- return False
- for g in user_groups:
- if g in (grp_administrateurs, grp_drh,):
- return True
- return False
+ return grp_drh in user_groups or grp_drh2 in user_groups or \
+ (is_user_dans_services_centraux(request.user) and
+ grp_administrateurs in user_groups)
def acces_administrateur(self, action, request):
- for g in request.user.groups.all():
- if g in (grp_correspondants_rh, grp_drh,):
- return True
- return False
+ user_groups = request.user.groups.all()
+ return grp_correspondants_rh in user_groups or grp_drh in user_groups or \
+ grp_drh2 in user_groups
def acces_drh_controle(self, action, request):
- groups = request.user.groups.all()
- return any(g in groups for g in [grp_directeurs_bureau, grp_service_utilisateurs, grp_drh]) or \
- grp_administrateurs in groups and (action == POSTE_ACTION_RETOUR_DEMANDE_MODIF or
- is_user_dans_region(request.user))
+ user_groups = request.user.groups.all()
+ return grp_directeurs_bureau in user_groups or \
+ grp_service_utilisateurs in user_groups or \
+ grp_drh in user_groups or grp_drh2 in user_groups or \
+ (grp_administrateurs in user_groups and
+ (action == POSTE_ACTION_RETOUR_DEMANDE_MODIF or
+ is_user_dans_region(request.user)))
+
+ def acces_drh_2(self, action, request):
+ user_groups = request.user.groups.all()
+ return grp_drh in user_groups
def acces_demande_modif(self, action, request):
- return grp_drh in request.user.groups.all()
+ user_groups = request.user.groups.all()
+ return grp_drh in user_groups or grp_drh2 in user_groups
def acces_srv_utilisateurs(self, action, request):
if not is_user_dans_services_centraux(request.user):
return False
- for g in request.user.groups.all():
- if g in (grp_administrateurs, grp_drh, ):
- return True
- return False
+ user_groups = request.user.groups.all()
+ return grp_administrateurs in user_groups or grp_drh in user_groups or \
+ grp_drh2 in user_groups
def acces_accior(self, action, request):
- for g in request.user.groups.all():
- if g in (grp_drh, ):
- return True
- return False
+ user_groups = request.user.groups.all()
+ return grp_drh in user_groups or grp_drh2 in user_groups
def acces_abf(self, action, request):
- for g in request.user.groups.all():
- if g in (grp_accior, grp_drh, ):
- return True
- return False
+ user_groups = request.user.groups.all()
+ return grp_accior in user_groups or grp_drh in user_groups or grp_drh2 in user_groups
def acces_haute_direction(self, action, request):
- for g in request.user.groups.all():
- if g in (grp_abf, grp_drh, ):
- return True
- return False
+ user_groups = request.user.groups.all()
+ return grp_abf in user_groups or grp_drh in user_groups or grp_drh2 in user_groups
def acces_region_finalisation(self, action, request):
- for g in request.user.groups.all():
- if g in (grp_haute_direction, grp_drh,):
- return True
+ user_groups = request.user.groups.all()
+ return grp_haute_direction in user_groups or grp_drh in user_groups or \
+ grp_drh2 in user_groups
def acces_drh_finalisation(self, action, request):
- for g in request.user.groups.all():
- if g in (grp_drh,):
- return True
- return False
+ user_groups = request.user.groups.all()
+ return grp_drh in user_groups or grp_drh2 in user_groups
def acces_demande_justif(self, action, request):
- groups = set(request.user.groups.all())
- return any(g in groups for g in [grp_haute_direction, grp_drh])
+ user_groups = request.user.groups.all()
+ return grp_haute_direction in user_groups or grp_drh in user_groups or \
+ grp_drh2 in user_groups
def acces_retour_demande_modif(self, action, request):
- for g in request.user.groups.all():
- if g in (grp_administrateurs, grp_drh,):
- return True
- return False
+ user_groups = request.user.groups.all()
+ return grp_administrateurs in user_groups or grp_drh in user_groups or \
+ grp_drh2 in user_groups
def acces_retour_demande_justif(self, action, request):
- for g in request.user.groups.all():
- if g in (grp_drh, ):
- return True
- return False
+ user_groups = request.user.groups.all()
+ return grp_drh in user_groups or grp_drh2 in user_groups
def acces_finaliser(self, action, request):
- for g in request.user.groups.all():
- if g in (grp_drh, ):
- return True
- return False
+ user_groups = request.user.groups.all()
+ return grp_drh in user_groups or grp_drh2 in user_groups
#codes actions
DOSSIER_ETAT_DIRECTEUR_BUREAU = POSTE_ETAT_DIRECTEUR_BUREAU
DOSSIER_ETAT_SERVICE_UTILISATEURS = POSTE_ETAT_SERVICE_UTILISATEURS
DOSSIER_ETAT_DRH_CONTROLE = POSTE_ETAT_DRH_CONTROLE
+DOSSIER_ETAT_DRH_2 = POSTE_ETAT_DRH_2
DOSSIER_ETAT_DEMANDE_MODIF = POSTE_ETAT_DEMANDE_MODIF
DOSSIER_ETAT_ACCIOR = POSTE_ETAT_ACCIOR
DOSSIER_ETAT_ABF = POSTE_ETAT_ABF
grp_drh : (POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_FINALISATION,
DOSSIER_ETAT_DRH_CONTROLE, DOSSIER_ETAT_DRH_FINALISATION,
POSTE_ETAT_DEMANDE_JUSTIF, DOSSIER_ETAT_DEMANDE_JUSTIF),
+ grp_drh2 : (POSTE_ETAT_DRH_2, DOSSIER_ETAT_DRH_2),
grp_accior : (POSTE_ETAT_ACCIOR, DOSSIER_ETAT_ACCIOR, ),
grp_abf : (POSTE_ETAT_ABF, DOSSIER_ETAT_ABF, ),
grp_haute_direction : (POSTE_ETAT_HAUTE_DIRECTION, DOSSIER_ETAT_HAUTE_DIRECTION, ),
ETATS_EDITABLE = (POSTE_ETAT_BROUILLON, POSTE_ETAT_ADMINISTRATEUR,
- POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DIRECTEUR_BUREAU,
- POSTE_ETAT_SERVICE_UTILISATEURS,
- POSTE_ETAT_DEMANDE_MODIF,
- POSTE_ETAT_DEMANDE_JUSTIF,
- DOSSIER_ETAT_BROUILLON,
+ POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_2,
+ POSTE_ETAT_DIRECTEUR_BUREAU,
+ POSTE_ETAT_SERVICE_UTILISATEURS, POSTE_ETAT_DEMANDE_MODIF,
+ POSTE_ETAT_DEMANDE_JUSTIF, DOSSIER_ETAT_BROUILLON,
DOSSIER_ETAT_ADMINISTRATEUR, DOSSIER_ETAT_DRH_CONTROLE,
- DOSSIER_ETAT_DIRECTEUR_BUREAU,
+ DOSSIER_ETAT_DRH_2, DOSSIER_ETAT_DIRECTEUR_BUREAU,
DOSSIER_ETAT_SERVICE_UTILISATEURS,
- DOSSIER_ETAT_DEMANDE_MODIF,
- DOSSIER_ETAT_DEMANDE_JUSTIF,
+ DOSSIER_ETAT_DEMANDE_MODIF, DOSSIER_ETAT_DEMANDE_JUSTIF,
)
ETATS_VALIDE = (DOSSIER_ETAT_REGION_FINALISATION, DOSSIER_ETAT_DRH_FINALISATION,