PEP8
[auf_rh_dae.git] / project / dae / decorators.py
index 0d8d55f..d98f7fe 100644 (file)
@@ -1,16 +1,13 @@
 # -*- encoding: utf-8 -*-
 
-from django.db.models import Q
 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 django.shortcuts import get_object_or_404
-from workflow import dae_groupes, ETATS_EDITABLE, ETATS_VALIDE, \
-        grp_drh, grp_drh2
+from project.dae.workflow import \
+        dae_groupes, ETATS_EDITABLE, ETATS_VALIDE, grp_drh, grp_drh2
 from project.dae import models as dae
 from project.rh import models as rh
-from utils import get_employe_from_user
+
 
 def user_in_dae_groupes(user):
     """
@@ -21,38 +18,47 @@ def user_in_dae_groupes(user):
             return True
     return False
 
+
 def redirect_interdiction(request, msg=u"Vous n'avez pas accès à cette page"):
-  """
-  Redirection du la page de login avec un message d'erreur.
-  """
-  from django.conf import settings
-  from django.contrib.auth import REDIRECT_FIELD_NAME
-  from django.utils.http import urlquote
-  login_url = settings.LOGIN_URL
-  path = urlquote(request.get_full_path())
-  tup = login_url, REDIRECT_FIELD_NAME, path
-  messages.add_message(request, messages.ERROR, "Votre compte ne permet pas d'accéder à cette partie de l'application.")
-  return HttpResponseRedirect('%s?%s=%s' % tup)
+    """
+    Redirection du la page de login avec un message d'erreur.
+    """
+    from django.conf import settings
+    from django.contrib.auth import REDIRECT_FIELD_NAME
+    from django.utils.http import urlquote
+    login_url = settings.LOGIN_URL
+    path = urlquote(request.get_full_path())
+    tup = login_url, REDIRECT_FIELD_NAME, path
+    messages.add_message(
+        request, messages.ERROR,
+        "Votre compte ne permet pas d'accéder à cette partie de l'application."
+    )
+    return HttpResponseRedirect('%s?%s=%s' % tup)
+
 
 def dae_groupe_requis(fn):
     """
-    L'accès à la plateforme nécessite d'appartenir au moins à un groupe,
-    ou d'être superuser. De cette manière l'autentification AUF fonctionnera
-    toujours, il suffit de mettre le nouvel employé dans le groupe qui le concerne.
+    L'accès à la plateforme nécessite d'appartenir au moins à un groupe, ou
+    d'être superuser. De cette manière l'autentification AUF fonctionnera
+    toujours, il suffit de mettre le nouvel employé dans le groupe qui le
+    concerne.
     """
     def inner(request, *args, **kwargs):
         user = request.user
 
         if user.is_superuser or user_in_dae_groupes(user):
             return fn(request, *args, **kwargs)
-        else :
-            msg = u"Votre compte ne permet pas d'accéder à cette partie de l'application."
+        else:
+            msg = u"Votre compte ne permet pas d'accéder à cette partie " \
+                    u"de l'application."
             return redirect_interdiction(request, msg)
     return inner
 
+
 def poste_dans_ma_region_ou_service(fn):
     """
-    Test si le user connecté appartient bien à la même région ou service que le poste.
+    Test si le user connecté appartient bien à la même région ou service que
+    le poste.
     """
     def inner(request, *args, **kwargs):
         user = request.user
@@ -75,27 +81,32 @@ def poste_dans_ma_region_ou_service(fn):
         postes = Poste.objects.ma_region_ou_service(user).filter(id=id)
         if len(postes) > 0:
             return fn(request, *args, **kwargs)
-        else :
+        else:
             msg = u"Vous n'avez pas le droit de consulter ce poste."
             return redirect_interdiction(request, msg)
     return inner
 
+
 def dossier_dans_ma_region_ou_service(fn):
     """
-    Test si le user connecté appartient bien à la même région ou service que le poste.
+    Test si le user connecté appartient bien à la même région ou service que
+    le poste.
     """
     def inner(request, *args, **kwargs):
         user = request.user
         poste_key = kwargs.get('key', None)
         dossier_id = kwargs.get('dossier_id', None)
 
-        # Si on s'intéresse à un dossier, on teste la validation avec le poste associé
+        # Si on s'intéresse à un dossier, on teste la validation avec le
+        # poste associé
         if dossier_id is not None:
-            dossiers = dae.Dossier.objects.ma_region_ou_service(user).filter(id=dossier_id)
+            dossiers = dae.Dossier.objects.ma_region_ou_service(user) \
+                    .filter(id=dossier_id)
             if len(dossiers) > 0:
                 return fn(request, *args, **kwargs)
-            else :
-                msg = u"Vous n'avez pas le droit de consulter ce dossier d'embauche."
+            else:
+                msg = u"Vous n'avez pas le droit de consulter " \
+                        u"ce dossier d'embauche."
                 return redirect_interdiction(request, msg)
 
         # Autoriser la création d'une nouvelle demande
@@ -103,26 +114,32 @@ def dossier_dans_ma_region_ou_service(fn):
             return fn(request, *args, **kwargs)
         # On est en train de répondre à un poste
         else:
-            return poste_dans_ma_region_ou_service(fn)(request, *args, **kwargs)
+            return poste_dans_ma_region_ou_service(fn)(
+                request, *args, **kwargs
+            )
     return inner
 
+
 def vieux_dossier_dans_ma_region_ou_service(fn):
     """
-    Test si le user connecté appartient bien à la même région ou service que le poste.
+    Test si le user connecté appartient bien à la même région ou service que
+    le poste.
     """
     def inner(request, *args, **kwargs):
         user = request.user
         dossier_id = kwargs.get('dossier_id', None)
-        dossiers = rh.Dossier.objects.ma_region_ou_service(user).filter(id=dossier_id)
+        dossiers = rh.Dossier.objects.ma_region_ou_service(user) \
+                .filter(id=dossier_id)
         if len(dossiers) > 0:
             return fn(request, *args, **kwargs)
         else:
-            msg = u"Vous n'avez pas le droit de consulter ce dossier d'embauche."
+            msg = u"Vous n'avez pas le droit de consulter " \
+                    u"ce dossier d'embauche."
             return redirect_interdiction(request, msg)
 
-
     return inner
 
+
 def employe_dans_ma_region_ou_service(fn):
     """
     Test d'accès à un employé
@@ -134,12 +151,13 @@ def employe_dans_ma_region_ou_service(fn):
         employe_key = kwargs.get('employe_key')
         if employe_key in autorises:
             return fn(request, *args, **kwargs)
-        else :
+        else:
             msg = u"Vous n'avez pas le droit de consulter cet employé."
             return redirect_interdiction(request, msg)
 
     return inner
 
+
 def dossier_est_modifiable(fn):
     def inner(request, *args, **kwargs):
         dossier_id = kwargs.get('dossier_id', None)
@@ -148,12 +166,14 @@ def dossier_est_modifiable(fn):
             dossier = dae.Dossier.objects.get(id=dossier_id)
             if not (dossier.etat in ETATS_EDITABLE and
                     (grp_drh in user_groupes or grp_drh2 in user_groupes or
-                     dossier in dae.Dossier.objects.mes_choses_a_faire(request.user).all())):
+                     dossier in dae.Dossier.objects \
+                     .mes_choses_a_faire(request.user).all())):
                 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)
@@ -161,13 +181,16 @@ def poste_est_modifiable(fn):
             poste_id = key.split('-')[1]
             poste = dae.Poste.objects.get(id=poste_id)
             if grp_drh not in request.user.groups.all() and \
-               (poste.etat not in ETATS_EDITABLE or poste not in dae.Poste.objects.mes_choses_a_faire(request.user).all()):
+               (poste.etat not in ETATS_EDITABLE \
+                or poste not in dae.Poste.objects \
+                .mes_choses_a_faire(request.user).all()):
                 msg = u"Ce poste ne peut plus être modifié."
                 return redirect_interdiction(request, msg)
 
         return fn(request, *args, **kwargs)
     return inner
 
+
 def get_contrat(fn):
     """Ce décorateur s'attend à ce que le premier argument de la vue décorée
        soit l'ID d'un contrat. Il vérifie les permissions, puis transforme
@@ -178,7 +201,8 @@ def get_contrat(fn):
         user_groupes = request.user.groups.all()
         if not (dossier.etat in ETATS_VALIDE and
                 (grp_drh in user_groupes or grp_drh2 in user_groupes or
-                 dossier in dae.Dossier.objects.mes_choses_a_faire(request.user).all())):
+                 dossier in dae.Dossier.objects \
+                 .mes_choses_a_faire(request.user).all())):
             return redirect_interdiction(request)
         return fn(request, contrat, *args, **kwargs)
     return inner