Merge branch 'dev'
authorEric Mc Sween <eric.mcsween@auf.org>
Thu, 21 Jun 2012 18:24:41 +0000 (14:24 -0400)
committerEric Mc Sween <eric.mcsween@auf.org>
Thu, 21 Jun 2012 18:24:41 +0000 (14:24 -0400)
project/rh/admin.py
project/views.py

index ab79128..f815ade 100644 (file)
@@ -19,10 +19,10 @@ import auf.django.references.models as ref
 from project.decorators import in_drh_or_admin
 from project.groups import grp_correspondants_rh
 from project.groups import get_employe_from_user
-import project.rh.models as rh
+from project.rh import models as rh
+from project.rh.change_list import ChangeList
 from project.rh.forms import ContratForm, AyantDroitForm, EmployeAdminForm, \
           AjaxSelect, DossierForm, ResponsableInlineForm
-from project.rh.change_list import ChangeList
 
 
 class BaseAdmin(admin.ModelAdmin):
index e14a10d..7466549 100644 (file)
@@ -6,15 +6,17 @@ from sendfile import sendfile
 from django.conf import settings
 from django.contrib.auth.decorators import login_required
 from django.contrib.auth.views import login
-from django.shortcuts import get_object_or_404
+from django.http import Http404
 
 from project.decorators import redirect_interdiction
 from project.rh import models as rh_models
 from project.dae import models as dae_models
 
+
 def index(request):
     return login(request, template_name='index.html')
 
+
 @login_required
 def piece(request, filename):
     """Téléchargement d'une pièce jointe à un poste."""
@@ -33,22 +35,33 @@ def piece(request, filename):
         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':
+        for contrat in application.Contrat.objects.filter(fichier=filename):
+            if contrat.fichier.name == filename:
+                return sendfile(request, contrat.fichier.path)
+        raise Http404
+    elif 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)
-
+        for piece in application.EmployePiece.objects.filter(fichier=filename):
+            if piece.fichier.name == filename:
+                return sendfile(request, piece.fichier.path)
+        raise Http404
+    elif model == 'poste':
+        for piece in application.PostePiece.objects.filter(fichier=filename):
+            if piece.fichier.name == 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)
+        raise Http404
+    elif model == 'dossier':
+        for piece in application.DossierPiece.objects.filter(fichier=filename):
+            if piece.fichier.name == 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)
+        raise Http404