PEP8
[auf_rh_dae.git] / project / views.py
index 3e26830..e14a10d 100644 (file)
@@ -1,39 +1,54 @@
 # -*- encoding: utf-8 -*-
+
+import os
+from sendfile import sendfile
+
+from django.conf import settings
 from django.contrib.auth.decorators import login_required
-from django.shortcuts import render_to_response
-from django.template import RequestContext
+from django.contrib.auth.views import login
+from django.shortcuts import get_object_or_404
+
+from project.decorators import redirect_interdiction
+from project.rh import models as rh_models
+from project.dae import models as dae_models
 
-import rh.models as rh
+def index(request):
+    return login(request, template_name='index.html')
 
 @login_required
-def accueil(request):
-    """Accueil = Tableau de bord de l'utilisateur"""
-    rc = RequestContext(request)
-    c = {}
-    
-    # TODO : debug
-    employes = rh.Employe.objects.filter(actif=True).exclude(supprime=True).order_by('?')
-    
-    c['employes'] = employes[0:10]
-    return render_to_response('accueil.html', c, rc)
+def piece(request, filename):
+    """Téléchargement d'une pièce jointe à un poste."""
+    # compatibilité avec DAE prod avant sécurité
+    try:
+        app, model, id, f = filename.split('/')
+    except:
+        path = os.path.join(settings.PRIVE_MEDIA_ROOT, filename)
+        return sendfile(request, path)
 
-def erreur404(request) :
-    c = {
-        'user':request.user,
-    }
-    return render_to_response('404.html', c,
-            context_instance = RequestContext(request))
+    if app == 'rh':
+        application = rh_models
+    elif app == 'dae':
+        application = dae_models
+    else:
+        assert False
+    if model == 'contrat':
+        # TODO definir peut-être un controle d'accès
+        piece = get_object_or_404(application.Contrat, fichier=filename)
+        return sendfile(request, piece.fichier.path)
+    if model == 'employe':
+        # TODO definir peut-être un controle d'accès
+        piece = get_object_or_404(application.EmployePiece, fichier=filename)
+        return sendfile(request, piece.fichier.path)
+    if model == 'poste':
+        piece = get_object_or_404(application.PostePiece, fichier=filename)
+        if application.Poste.objects.ma_region_ou_service(request.user).filter(id=piece.poste_id).exists():
+            return sendfile(request, piece.fichier.path)
+        else:
+            return redirect_interdiction(request)
+    if model == 'dossier':
+        piece = get_object_or_404(application.DossierPiece, fichier=filename)
+        if application.Dossier.objects.ma_region_ou_service(request.user).filter(id=piece.dossier_id).exists():
+            return sendfile(request, piece.fichier.path)
+        else:
+            return redirect_interdiction(request)
 
-def erreur500(request) :
-    c = {
-        'user':request.user,
-    }
-    return render_to_response('500.html', c,
-            context_instance = RequestContext(request))
-            
-def erreur550(request) :
-    c = {
-        'user':request.user,
-    }
-    return render_to_response('550.html', c,
-            context_instance = RequestContext(request))