poste etat decorateur
[auf_rh_dae.git] / project / dae / decorators.py
index a927fef..443384e 100644 (file)
@@ -4,7 +4,7 @@ from django.contrib import messages
 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
 
@@ -122,3 +122,28 @@ def employe_dans_ma_region_ou_service(fn):
             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
+
+def poste_est_modifiable(fn):
+    def inner(request, *args, **kwargs):
+        key = kwargs.get('key', None)
+        if key is not None and key.split('-')[0] == 'dae':
+            poste_id = key.split('-')[1]
+            poste = dae.Poste.objects.get(id=poste_id)
+            if poste.etat not in ETATS_EDITABLE:
+                msg = u"Ce poste ne peut plus être modifié."
+                return redirect_interdiction(request, msg)
+
+        return fn(request, *args, **kwargs)
+    return inner