From d8cfc3d5147ffe14011c8ed0d75404bd608d7e61 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Larchev=C3=AAque?= Date: Mon, 30 May 2011 10:02:32 -0400 Subject: [PATCH] #1562, #1552, #1549, #1535 --- project/dae/catalogues.py | 4 +- project/dae/decorators.py | 12 ++-- project/dae/forms.py | 6 +- project/dae/managers.py | 26 ++++--- project/dae/templatetags/dae.py | 4 +- project/dae/utils.py | 2 +- project/dae/workflow.py | 147 +++++++++++++++++++++++++-------------- project/templates/index.html | 13 ++++ 8 files changed, 137 insertions(+), 77 deletions(-) diff --git a/project/dae/catalogues.py b/project/dae/catalogues.py index 4aa32d8..e745854 100644 --- a/project/dae/catalogues.py +++ b/project/dae/catalogues.py @@ -2,7 +2,7 @@ from django.db.models import Q from rh_v1 import models as rh -from utils import get_employe_from_user, is_user_dans_service +from utils import get_employe_from_user, is_user_dans_services_centraux from workflow import grp_drh class Responsable(object): @@ -46,7 +46,7 @@ class Dossier(object): Q(employe__nom__icontains=q) | \ Q(employe__prenom__icontains=q) - if is_user_dans_service(request.user): + if is_user_dans_services_centraux(request.user): q_place = Q(**{ '%s' % prefixe_implantation : employe.implantation }) else: q_place = Q(**{ '%s__region' % prefixe_implantation : employe.implantation.region }) diff --git a/project/dae/decorators.py b/project/dae/decorators.py index 6a14f2c..6661650 100644 --- a/project/dae/decorators.py +++ b/project/dae/decorators.py @@ -8,7 +8,7 @@ from django.http import HttpResponseRedirect from workflow import dae_groupes, ETATS_EDITABLE, grp_drh from project.dae import models as dae from project.rh_v1 import models as rh -from utils import get_employe_from_user, is_user_dans_service +from utils import get_employe_from_user def user_in_dae_groupes(user): """ @@ -119,10 +119,12 @@ def vieux_dossier_dans_ma_region_ou_service(fn): employe = get_employe_from_user(request.user) prefixe_implantation = 'poste1__implantation' - if is_user_dans_service(request.user): - q_place = Q(**{ '%s' % prefixe_implantation : employe.implantation }) - else: - q_place = Q(**{ '%s__region' % prefixe_implantation : employe.implantation.region }) + #if is_user_dans_service(request.user): + # q_place = Q(**{ '%s' % prefixe_implantation : employe.implantation }) + #else: + # q_place = Q(**{ '%s__region' % prefixe_implantation : employe.implantation.region }) + + q_place = Q(**{ '%s__region' % prefixe_implantation : employe.implantation.region }) if grp_drh in request.user.groups.all(): diff --git a/project/dae/forms.py b/project/dae/forms.py index 137ef94..36f0177 100644 --- a/project/dae/forms.py +++ b/project/dae/forms.py @@ -8,7 +8,7 @@ from ajax_select.fields import AutoCompleteSelectField from auf.django.workflow.forms import WorkflowFormMixin from datamaster_modeles import models as ref from dae import models as dae -from utils import get_employe_from_user, is_user_dans_service +from utils import get_employe_from_user, is_user_dans_services_centraux from rh_v1 import models as rh from workflow import grp_drh, POSTE_ETATS_BOUTONS @@ -16,7 +16,7 @@ def _implantation_choices(obj, request): # TRAITEMENT NORMAL employe = get_employe_from_user(request.user) # SERVICE - if is_user_dans_service(request.user): + if is_user_dans_services_centraux(request.user): q = Q(**{ 'id' : employe.implantation_id }) # REGION else: @@ -33,7 +33,7 @@ def _employe_choices(obj, request): # TRAITEMENT NORMAL employe = get_employe_from_user(request.user) # SERVICE - if is_user_dans_service(request.user): + if is_user_dans_services_centraux(request.user): q_region_service = Q(implantation1=employe.implantation) | Q(implantation2=employe.implantation) # REGION else: diff --git a/project/dae/managers.py b/project/dae/managers.py index 6eabf34..a48cb98 100644 --- a/project/dae/managers.py +++ b/project/dae/managers.py @@ -2,21 +2,21 @@ from django.db import models from django.db.models import Q -from utils import is_user_dans_service, get_employe_from_user +from utils import get_employe_from_user from workflow import POSTE_ETAT_HAUTE_DIRECTION, \ - POSTE_ETAT_POLE_FINANCIER, \ + POSTE_ETAT_ACCIOR, \ + POSTE_ETAT_AFB, \ POSTE_ETAT_REFUSE, \ DOSSIER_ETAT_REFUSE, \ MAP_GROUPE_ETATS_A_FAIRE from workflow import dae_groupes, \ grp_administrateurs, \ - grp_gestionnaires, \ grp_directeurs_bureau, \ grp_drh, \ - grp_pole_financier, \ + grp_accior, \ + grp_afb, \ grp_haute_direction, \ grp_service_utilisateurs, \ - grp_directeurs_service, \ grp_correspondants_rh @@ -67,17 +67,23 @@ class SecurityManager(models.Manager): else: q = Q(**{ self.prefixe_implantation : employe.implantation.region }) - if workflowed_model: - q_non_refuse = ~Q(etat__in=(POSTE_ETAT_REFUSE, DOSSIER_ETAT_REFUSE,)) - q = q & q_non_refuse + #if workflowed_model: + # q_non_refuse = ~Q(etat__in=(POSTE_ETAT_REFUSE, DOSSIER_ETAT_REFUSE,)) + # q = q & q_non_refuse liste = self.get_query_set().filter(q) ############################################ - # TRAITEMENT POLE FINANCIER + # TRAITEMENT ACCIOR ############################################ - if workflowed_model and grp_pole_financier in user.groups.all(): + if workflowed_model and grp_accior in user.groups.all(): + liste = self.get_query_set().filter(q_non_refuse) + + ############################################ + # TRAITEMENT AFB + ############################################ + if workflowed_model and grp_afb in user.groups.all(): liste = self.get_query_set().filter(q_non_refuse) ############################################ diff --git a/project/dae/templatetags/dae.py b/project/dae/templatetags/dae.py index 1cbcb06..e4df312 100644 --- a/project/dae/templatetags/dae.py +++ b/project/dae/templatetags/dae.py @@ -1,13 +1,13 @@ from django import template from project.dae.workflow import ETATS_EDITABLE -from project.dae.workflow import grp_gestionnaires, grp_service_utilisateurs, grp_correspondants_rh, grp_administrateurs, grp_directeurs_bureau, grp_drh, grp_directeurs_service, grp_correspondants_rh +from project.dae.workflow import grp_correspondants_rh, grp_administrateurs, grp_drh register = template.Library() @register.filter def peut_ajouter(user): for g in user.groups.all(): - if g in (grp_gestionnaires, grp_service_utilisateurs, grp_administrateurs, grp_drh, grp_directeurs_bureau, grp_directeurs_service, grp_correspondants_rh): + if g in (grp_administrateurs, grp_correspondants_rh, grp_drh): return True return False diff --git a/project/dae/utils.py b/project/dae/utils.py index b7ecc9c..0e48299 100644 --- a/project/dae/utils.py +++ b/project/dae/utils.py @@ -12,7 +12,7 @@ def get_employe_from_user(user): raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email) return employe -def is_user_dans_service(user): +def is_user_dans_services_centraux(user): employe = get_employe_from_user(user) return employe.implantation_id in (15, 19) diff --git a/project/dae/workflow.py b/project/dae/workflow.py index 055b8a7..e88965b 100644 --- a/project/dae/workflow.py +++ b/project/dae/workflow.py @@ -2,6 +2,7 @@ from django.contrib.auth.models import Group from auf.django.workflow.models import WorkflowMixin +from utils import is_user_dans_services_centraux def safe_create_groupe(name): """ @@ -16,37 +17,40 @@ def safe_create_groupe(name): return grp # Groupes impliqués dans le Worflow +grp_correspondants_rh = safe_create_groupe(name='Correspondants RH') grp_administrateurs = safe_create_groupe(name='Administrateurs') -grp_gestionnaires = safe_create_groupe(name='Gestionnaires') grp_directeurs_bureau = safe_create_groupe(name='Directeurs de bureau') grp_drh = safe_create_groupe(name='DRH') -grp_pole_financier = safe_create_groupe(name='Pôle financier') +grp_accior = safe_create_groupe(name='ACCIOR') +grp_afb = safe_create_groupe(name='AFB') grp_haute_direction = safe_create_groupe(name='Haute direction') grp_service_utilisateurs = safe_create_groupe(name='Service utilisateurs') -grp_directeurs_service = safe_create_groupe(name='Directeurs de service / pôle') -grp_correspondants_rh = safe_create_groupe(name='Correspondants RH') -dae_groupes = (grp_administrateurs, grp_gestionnaires, grp_directeurs_bureau, grp_drh, - grp_pole_financier, grp_haute_direction, grp_service_utilisateurs, - grp_directeurs_service, grp_correspondants_rh, ) +dae_groupes = (grp_administrateurs, grp_directeurs_bureau, grp_drh, + grp_accior, grp_afb, grp_haute_direction, grp_service_utilisateurs, + grp_correspondants_rh, ) # codes états POSTE_ETAT_REFUSE = 'REFUSE' POSTE_ETAT_BROUILLON = 'BROUILLON' -POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE = 'DIRECTEUR_BUR_SRV' POSTE_ETAT_ADMINISTRATEUR = 'ADMINISTRATEUR' +POSTE_ETAT_DIRECTEUR_BUREAU = 'DIRECTEUR_BUREAU' +POSTE_ETAT_SERVICE_UTILISATEURS = 'SRV_UTILISATEURS' POSTE_ETAT_DRH_CONTROLE = 'DRH_CONTROLE' -POSTE_ETAT_POLE_FINANCIER = 'FINANCE' +POSTE_ETAT_ACCIOR = 'ACCIOR' +POSTE_ETAT_AFB = 'AFB' POSTE_ETAT_HAUTE_DIRECTION = 'HAUTE_DIRECTION' POSTE_ETAT_DRH_FINALISATION = 'DRH_FINALISATION' #codes actions POSTE_ACTION_ENVOYER_REFUSE = POSTE_ETAT_REFUSE POSTE_ACTION_ENVOYER_BROUILLON = POSTE_ETAT_BROUILLON -POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU_OU_SERVICE = POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE POSTE_ACTION_ENVOYER_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR +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_POLE_FINANCIER = POSTE_ETAT_POLE_FINANCIER +POSTE_ACTION_ENVOYER_ACCIOR = POSTE_ETAT_ACCIOR +POSTE_ACTION_ENVOYER_AFB = POSTE_ETAT_AFB POSTE_ACTION_ENVOYER_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION POSTE_ACTION_ENVOYER_DRH_FINALISATION = POSTE_ETAT_DRH_FINALISATION @@ -54,10 +58,12 @@ POSTE_ACTION_ENVOYER_DRH_FINALISATION = POSTE_ETAT_DRH_FINALISATION POSTE_ETATS = { POSTE_ETAT_REFUSE : u"Refusé", POSTE_ETAT_BROUILLON : u"En rédaction", - POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE : u"Directeur de bureau, pôle ou service", POSTE_ETAT_ADMINISTRATEUR : u"Validation de l'adminstrateur", + POSTE_ETAT_DIRECTEUR_BUREAU : u"Directeur de bureau", + POSTE_ETAT_SERVICE_UTILISATEURS : u"Service utilisateurs", POSTE_ETAT_DRH_CONTROLE : u"Validation DRH", - POSTE_ETAT_POLE_FINANCIER : u"Pôle finances", + POSTE_ETAT_ACCIOR : u"ACCIOR", + POSTE_ETAT_AFB : u"AFB", POSTE_ETAT_HAUTE_DIRECTION : u"Validation : Secrétaire général / Recteur", POSTE_ETAT_DRH_FINALISATION : u'Retour à la DRH et région', } @@ -65,10 +71,12 @@ POSTE_ETATS = { #libellés états pour boutons POSTE_ETATS_BOUTONS = { POSTE_ETAT_REFUSE : u"Refuser", - POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE : u"Envoyer au directeur de bureau, pôle ou service", + POSTE_ETAT_DIRECTEUR_BUREAU : u"Envoyer au directeur de bureau", + 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_POLE_FINANCIER : u"Envoyer au pôle finances", + POSTE_ETAT_ACCIOR : u"Envoyer à l'ACCIOR", + POSTE_ETAT_AFB : u"Envoyer à l'AFB", POSTE_ETAT_HAUTE_DIRECTION : u"Envoyer à la haute direction", POSTE_ETAT_DRH_FINALISATION : u'Envoyer à la DRH (traitement)', } @@ -77,7 +85,7 @@ POSTE_ETATS_BOUTONS = { POSTE_ACTIONS = { POSTE_ACTION_ENVOYER_REFUSE : { 'nom' : u'Refuser', - 'etat_initial' : (POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_POLE_FINANCIER, POSTE_ETAT_HAUTE_DIRECTION), + 'etat_initial' : (POSTE_ETAT_DIRECTEUR_BUREAU, POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_SERVICE_UTILISATEURS, POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_HAUTE_DIRECTION), 'etat_final' : POSTE_ETAT_REFUSE, }, POSTE_ACTION_ENVOYER_BROUILLON : { @@ -85,47 +93,58 @@ POSTE_ACTIONS = { 'etat_initial' : None, 'etat_final' : POSTE_ETAT_BROUILLON, }, - POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU_OU_SERVICE : { - 'nom' : u'Envoyer', - 'etat_initial' : POSTE_ETAT_BROUILLON, - 'etat_final' : POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, - }, POSTE_ACTION_ENVOYER_ADMINISTRATEUR : { 'nom' : u'Envoyer', - 'etat_initial' : (POSTE_ETAT_REFUSE, POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE), + 'etat_initial' : (POSTE_ETAT_BROUILLON, POSTE_ETAT_REFUSE, ), 'etat_final' : POSTE_ETAT_ADMINISTRATEUR, }, + POSTE_ACTION_ENVOYER_SRV_UTILISATEURS : { + 'nom' : u'Envoyer', + 'etat_initial' : (POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_REFUSE, ), + 'etat_final' : POSTE_ETAT_SERVICE_UTILISATEURS, + }, + POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU : { + 'nom' : u'Envoyer', + 'etat_initial' : (POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_REFUSE,), + 'etat_final' : POSTE_ETAT_DIRECTEUR_BUREAU, + }, POSTE_ACTION_ENVOYER_DRH_CONTROLE : { 'nom' : u'Envoyer', - 'etat_initial' : (POSTE_ETAT_REFUSE, POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, POSTE_ETAT_ADMINISTRATEUR, ), + 'etat_initial' : (POSTE_ETAT_DIRECTEUR_BUREAU, POSTE_ETAT_SERVICE_UTILISATEURS, POSTE_ETAT_REFUSE, ), 'etat_final' : POSTE_ETAT_DRH_CONTROLE, }, - POSTE_ACTION_ENVOYER_POLE_FINANCIER : { + POSTE_ACTION_ENVOYER_ACCIOR : { 'nom' : u'Envoyer', - 'etat_initial' : (POSTE_ETAT_REFUSE, POSTE_ETAT_DRH_CONTROLE, ), - 'etat_final' : POSTE_ETAT_POLE_FINANCIER, + 'etat_initial' : (POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_REFUSE, ), + 'etat_final' : POSTE_ETAT_ACCIOR, + }, + POSTE_ACTION_ENVOYER_AFB : { + 'nom' : u'Envoyer', + 'etat_initial' : (POSTE_ETAT_ACCIOR, POSTE_ETAT_REFUSE, ), + 'etat_final' : POSTE_ETAT_AFB, }, POSTE_ACTION_ENVOYER_HAUTE_DIRECTION : { 'nom' : u'Envoyer', - 'etat_initial' : (POSTE_ETAT_REFUSE, POSTE_ETAT_POLE_FINANCIER, ), + 'etat_initial' : (POSTE_ETAT_AFB, POSTE_ETAT_REFUSE, ), 'etat_final' : POSTE_ETAT_HAUTE_DIRECTION, }, POSTE_ACTION_ENVOYER_DRH_FINALISATION : { 'nom' : u'Envoyer', - 'etat_initial' : (POSTE_ETAT_REFUSE, POSTE_ETAT_HAUTE_DIRECTION, ), + 'etat_initial' : (POSTE_ETAT_HAUTE_DIRECTION, POSTE_ETAT_REFUSE, ), 'etat_final' : POSTE_ETAT_DRH_FINALISATION, }, } -def refuse_sauf_pour_drh(f): +def acces_etat_refuse(f): """ - Personne ne peut manipuler quelque chose à l'état refusé excepté la DRH + Personne ne peut manipuler quelque chose à l'état refusé excepté la DRH et les administrateurs """ def inner(obj, action, request): if obj.etat != 'REFUSE': return f(obj, action, request) - if grp_drh in request.user.groups.all(): + user_groupes = request.user.groups.all() + if grp_drh in user_groupes or grp_administrateurs in user_groupes: return f(obj, action, request) else: return False @@ -140,7 +159,8 @@ class PosteWorkflow(WorkflowMixin): abstract = True def acces_refuse(self, action, request): - if grp_pole_financier in request.user.groups.all(): + user_groupes = request.user.groups.all() + if grp_accior in user_groupes or grp_afb in user_groupes: return False user_groupes = request.user.groups.all() @@ -149,42 +169,60 @@ class PosteWorkflow(WorkflowMixin): return True return False - @refuse_sauf_pour_drh - def acces_directeur_bur_srv(self, action, request): + @acces_etat_refuse + def acces_directeur_bureau(self, action, request): + if is_user_dans_services_centraux(request.user): + return False for g in request.user.groups.all(): - if g in (grp_administrateurs, grp_gestionnaires, grp_service_utilisateurs, grp_correspondants_rh, grp_drh,): + if g in (grp_administrateurs, grp_drh,): return True return False - @refuse_sauf_pour_drh + @acces_etat_refuse def acces_administrateur(self, action, request): for g in request.user.groups.all(): - if g in (grp_directeurs_service, grp_drh,): + if g in (grp_correspondants_rh, grp_drh,): return True return False - @refuse_sauf_pour_drh + @acces_etat_refuse def acces_drh_controle(self, action, request): for g in request.user.groups.all(): - if g in (grp_directeurs_bureau, grp_administrateurs, grp_drh,): + if g in (grp_directeurs_bureau, grp_service_utilisateurs, grp_drh,): return True return False - @refuse_sauf_pour_drh - def acces_finance(self, action, request): + @acces_etat_refuse + 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 + + @acces_etat_refuse + def acces_accior(self, action, request): for g in request.user.groups.all(): if g in (grp_drh, ): return True return False - @refuse_sauf_pour_drh + @acces_etat_refuse + def acces_afb(self, action, request): + for g in request.user.groups.all(): + if g in (grp_accior, grp_drh, ): + return True + return False + + @acces_etat_refuse def acces_haute_direction(self, action, request): for g in request.user.groups.all(): - if g in (grp_pole_financier, grp_drh, ): + if g in (grp_afb, grp_drh, ): return True return False - @refuse_sauf_pour_drh + @acces_etat_refuse def acces_drh_finalisation(self, action, request): for g in request.user.groups.all(): if g in (grp_haute_direction, grp_drh, ): @@ -195,10 +233,12 @@ class PosteWorkflow(WorkflowMixin): #codes actions DOSSIER_ETAT_REFUSE = POSTE_ETAT_REFUSE DOSSIER_ETAT_BROUILLON = POSTE_ETAT_BROUILLON -DOSSIER_ETAT_DIRECTEUR_BUREAU_OU_SERVICE = POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE DOSSIER_ETAT_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR +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_POLE_FINANCIER = POSTE_ETAT_POLE_FINANCIER +DOSSIER_ETAT_ACCIOR = POSTE_ETAT_ACCIOR +DOSSIER_ETAT_AFB = POSTE_ETAT_AFB DOSSIER_ETAT_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION DOSSIER_ETAT_DRH_FINALISATION = POSTE_ETAT_DRH_FINALISATION @@ -218,19 +258,18 @@ class DossierWorkflow(PosteWorkflow): MAP_GROUPE_ETATS_A_FAIRE = { - grp_gestionnaires : (), - grp_service_utilisateurs : (), grp_correspondants_rh : (), - grp_administrateurs : (POSTE_ETAT_ADMINISTRATEUR, DOSSIER_ETAT_ADMINISTRATEUR,), - grp_directeurs_bureau : (POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, DOSSIER_ETAT_DIRECTEUR_BUREAU_OU_SERVICE,), + grp_service_utilisateurs : (POSTE_ETAT_SERVICE_UTILISATEURS, DOSSIER_ETAT_SERVICE_UTILISATEURS,), + grp_administrateurs : (POSTE_ETAT_ADMINISTRATEUR, DOSSIER_ETAT_ADMINISTRATEUR, ), + grp_directeurs_bureau : (POSTE_ETAT_DIRECTEUR_BUREAU, DOSSIER_ETAT_DIRECTEUR_BUREAU, ), grp_drh : (POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_FINALISATION, DOSSIER_ETAT_DRH_CONTROLE, DOSSIER_ETAT_DRH_FINALISATION,), - grp_pole_financier : (POSTE_ETAT_POLE_FINANCIER, DOSSIER_ETAT_POLE_FINANCIER, ), + grp_accior : (POSTE_ETAT_ACCIOR, DOSSIER_ETAT_ACCIOR, ), + grp_afb : (POSTE_ETAT_AFB, DOSSIER_ETAT_AFB, ), grp_haute_direction : (POSTE_ETAT_HAUTE_DIRECTION, DOSSIER_ETAT_HAUTE_DIRECTION, ), - grp_directeurs_service : (POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, DOSSIER_ETAT_DIRECTEUR_BUREAU_OU_SERVICE,), } -ETATS_EDITABLE = (POSTE_ETAT_BROUILLON, POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, - DOSSIER_ETAT_BROUILLON, DOSSIER_ETAT_ADMINISTRATEUR, DOSSIER_ETAT_DRH_CONTROLE, DOSSIER_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, +ETATS_EDITABLE = (POSTE_ETAT_REFUSE, POSTE_ETAT_BROUILLON, POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DIRECTEUR_BUREAU, POSTE_ETAT_SERVICE_UTILISATEURS, + DOSSIER_ETAT_REFUSE, DOSSIER_ETAT_BROUILLON, DOSSIER_ETAT_ADMINISTRATEUR, DOSSIER_ETAT_DRH_CONTROLE, DOSSIER_ETAT_DIRECTEUR_BUREAU, DOSSIER_ETAT_SERVICE_UTILISATEURS, ) diff --git a/project/templates/index.html b/project/templates/index.html index d1cccdd..0a7e9e8 100644 --- a/project/templates/index.html +++ b/project/templates/index.html @@ -5,6 +5,7 @@ {% block sous_titre %}Accueil{% endblock %} {% block main %} +

Ressources humaines

@@ -16,5 +17,17 @@ Voici les modules actuellement disponibles :

+ +

Vos droits d'accès

+{% if request.user.is_authenticated %} +

Vous faîtes partie des groupes suivants :

+ +{% endif %} + + {% endblock %} -- 1.7.10.4