auf.django.skin = 0.15dev
auf.django.auth = 0.5.2dev
django-reversion = 1.3.3
-auf.django.workflow = 0.9dev
+auf.django.workflow = 0.10dev
django-ajax-selects = 1.1.4
reportlab = 2.5
html5lib = 0.90
from django.contrib.auth.decorators import user_passes_test
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
-from workflow import dae_groupes
+from workflow import dae_groupes, ETATS_EDITABLE
from project.dae import models as dae
from project.rh_v1 import models as rh
return redirect_interdiction(request, msg)
return inner
+
+def dossier_est_modifiable(fn):
+ def inner(request, *args, **kwargs):
+ dossier_id = kwargs.get('dossier_id', None)
+ if dossier_id is not None:
+ dossier = dae.Dossier.objects.get(id=dossier_id)
+ if dossier.etat not in ETATS_EDITABLE:
+ msg = u"Ce dossier d'embauche ne peut plus être modifié."
+ return redirect_interdiction(request, msg)
+
+ return fn(request, *args, **kwargs)
+ return inner
# TRAITEMENT POLE FINANCIER
############################################
if workflowed_model and grp_pole_financier in user.groups.all():
- liste = self.get_query_set().filter(etat=POSTE_ETAT_FINANCE)
+ liste = self.get_query_set().filter(etat=POSTE_ETAT_POLE_FINANCIER)
############################################
# TRAITEMENT HAUTE DIRECTION
from decorators import dae_groupe_requis, \
poste_dans_ma_region_ou_service, \
dossier_dans_ma_region_ou_service, \
- employe_dans_ma_region_ou_service
+ employe_dans_ma_region_ou_service, \
+ dossier_est_modifiable
from forms import *
pisa.showLogging()
@dae_groupe_requis
@dossier_dans_ma_region_ou_service
+@dossier_est_modifiable
def embauche(request, key=None, dossier_id=None):
""" Formulaire d'autorisation d'embauche. """
if not key:
POSTE_ETAT_HAUTE_DIRECTION = 'HAUTE_DIRECTION'
POSTE_ETAT_DRH_FINALISATION = 'DRH_FINALISATION'
+ETATS_EDITABLE = (POSTE_ETAT_BROUILLON, POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_DRH_CONTROLE)
+
#codes actions
POSTE_ACTION_ENVOYER_BROUILLON = POSTE_ETAT_BROUILLON
POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU_OU_SERVICE = POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE
#libellés états
POSTE_ETATS = {
- POSTE_ETAT_BROUILLON : u'Brouillon',
- POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE : u'Directeur de bureau, pôle ou service',
- POSTE_ETAT_ADMINISTRATEUR : u'Adminstrateur',
- POSTE_ETAT_DRH_CONTROLE : u'Contrôle DRH',
- POSTE_ETAT_POLE_FINANCIER : u'Pôle financier',
- POSTE_ETAT_HAUTE_DIRECTION : u'Haute direction',
- POSTE_ETAT_DRH_FINALISATION : u'Finalisation DRH',
+ POSTE_ETAT_BROUILLON : u"Proposition",
+ POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE : u"Directeur de bureau, pôle ou service",
+ POSTE_ETAT_ADMINISTRATEUR : u"Validation de l'adminstrateur",
+ POSTE_ETAT_DRH_CONTROLE : u"Validation DRH",
+ POSTE_ETAT_POLE_FINANCIER : u"Pôle finances",
+ POSTE_ETAT_HAUTE_DIRECTION : u"Validation : Secrétaire général / Recteur",
+ POSTE_ETAT_DRH_FINALISATION : u'Retour à la DRH et région',
}
# définition du worflow séquentiel