poste etat decorateur
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Tue, 10 May 2011 21:43:33 +0000 (17:43 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Tue, 10 May 2011 21:43:33 +0000 (17:43 -0400)
project/dae/decorators.py
project/dae/views.py

index 70174e1..443384e 100644 (file)
@@ -134,3 +134,16 @@ def dossier_est_modifiable(fn):
 
         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
index f7f658c..a6a8a5f 100644 (file)
@@ -26,7 +26,8 @@ from decorators import dae_groupe_requis, \
                        poste_dans_ma_region_ou_service, \
                        dossier_dans_ma_region_ou_service, \
                        employe_dans_ma_region_ou_service, \
-                       dossier_est_modifiable
+                       dossier_est_modifiable, \
+                       poste_est_modifiable
 from forms import *
 
 pisa.showLogging()
@@ -84,6 +85,7 @@ def poste_consulter(request, key):
 
 @dae_groupe_requis
 @poste_dans_ma_region_ou_service
+@poste_est_modifiable
 def poste(request, key=None):
     """ Formulaire pour un poste.