1 # -*- encoding: utf-8 -*-
4 from sendfile
import sendfile
6 from django
.conf
import settings
7 from django
.shortcuts
import render_to_response
8 from django
.template
import RequestContext
9 from django
.contrib
.auth
.decorators
import login_required
10 from django
.shortcuts
import redirect
, render_to_response
, get_object_or_404
12 # pas de reference a DAE devrait etre refactorisé
13 from project
.dae
.decorators
import dae_groupe_requis
14 from project
.dae
.decorators
import redirect_interdiction
18 return render_to_response('index.html', {}, RequestContext(request
))
21 def piece(request
, filename
):
22 """Téléchargement d'une pièce jointe à un poste."""
23 # compatibilité avec DAE prod avant sécurité
25 app
, model
, id, f
= filename
.split('/')
27 path
= os
.path
.join(settings
.PRIVE_MEDIA_ROOT
, filename
)
28 return sendfile(request
, path
)
30 application
= __import__(app
).models
31 if model
== 'contrat':
32 # TODO definir peut-être un controle d'accès
33 piece
= get_object_or_404(application
.Contrat
, fichier
=filename
)
34 return sendfile(request
, piece
.fichier
.path
)
35 if model
== 'employe':
36 # TODO definir peut-être un controle d'accès
37 piece
= get_object_or_404(application
.EmployePiece
, fichier
=filename
)
38 return sendfile(request
, piece
.fichier
.path
)
40 piece
= get_object_or_404(application
.PostePiece
, fichier
=filename
)
41 if application
.Poste
.objects
.ma_region_ou_service(request
.user
).filter(id=piece
.poste_id
).exists():
42 return sendfile(request
, piece
.fichier
.path
)
44 return redirect_interdiction(request
)
45 if model
== 'dossier':
46 piece
= get_object_or_404(application
.DossierPiece
, fichier
=filename
)
47 if application
.Dossier
.objects
.ma_region_ou_service(request
.user
).filter(id=piece
.dossier_id
).exists():
48 return sendfile(request
, piece
.fichier
.path
)
50 return redirect_interdiction(request
)