fd832643650194dda3918378af38a1a165d6c271
1 # -*- encoding: utf-8 -*-
4 from sendfile
import sendfile
6 from django
.conf
import settings
7 from django
.shortcuts
import render
8 from django
.contrib
.auth
.decorators
import login_required
9 from django
.http
import Http404
11 from project
.decorators
import redirect_interdiction
12 from project
.rh
import models
as rh_models
13 from project
.dae
import models
as dae_models
19 return render(request
, 'index.html', c
)
23 def piece(request
, filename
):
24 """Téléchargement d'une pièce jointe à un poste."""
25 # compatibilité avec DAE prod avant sécurité
27 app
, model
, id, f
= filename
.split('/')
29 path
= os
.path
.join(settings
.PRIVE_MEDIA_ROOT
, filename
)
30 return sendfile(request
, path
)
33 application
= rh_models
35 application
= dae_models
38 if model
== 'contrat':
39 # TODO definir peut-être un controle d'accès
40 for contrat
in application
.Contrat
.objects
.filter(fichier
=filename
):
41 if contrat
.fichier
.name
== filename
:
42 return sendfile(request
, contrat
.fichier
.path
)
44 elif model
== 'employe':
45 # TODO definir peut-être un controle d'accès
46 for piece
in application
.EmployePiece
.objects
.filter(fichier
=filename
):
47 if piece
.fichier
.name
== filename
:
48 return sendfile(request
, piece
.fichier
.path
)
50 elif model
== 'poste':
51 for piece
in application
.PostePiece
.objects
.filter(fichier
=filename
):
52 if piece
.fichier
.name
== filename
:
53 if application
.Poste
.objects \
54 .ma_region_ou_service(request
.user
) \
55 .filter(id=piece
.poste_id
).exists():
56 return sendfile(request
, piece
.fichier
.path
)
58 return redirect_interdiction(request
)
60 elif model
== 'dossier':
61 for piece
in application
.DossierPiece
.objects
.filter(fichier
=filename
):
62 if piece
.fichier
.name
== filename
:
63 if application
.Dossier
.objects \
64 .ma_region_ou_service(request
.user
) \
65 .filter(id=piece
.dossier_id
).exists():
66 return sendfile(request
, piece
.fichier
.path
)
68 return redirect_interdiction(request
)