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."""
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