From 67a94eafe2b388c418d80d302e4a1d213d6128ec Mon Sep 17 00:00:00 2001 From: Eric Mc Sween Date: Thu, 3 Nov 2011 10:47:00 -0400 Subject: [PATCH] =?utf8?q?Ne=20pas=20utiliser=20Content-Disposition:=20attac?= =?utf8?q?hment=20pour=20les=20fichiers=20t=C3=A9l=C3=A9chargeables=20car=20?= =?utf8?q?=C3=A7a=20pose=20un=20probl=C3=A8me=20pour=20les=20fichiers=20cont?= =?utf8?q?enant=20des=20accents.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- project/dae/templates/dae/embauche_consulter.html | 9 +++++---- project/dae/templates/dae/embauche_pdf.html | 3 ++- project/dae/templates/dae/poste_resume.html | 3 ++- project/dae/templatetags/dae.py | 6 ++++++ project/dae/urls.py | 6 +++--- project/dae/views.py | 21 ++++++--------------- 6 files changed, 24 insertions(+), 24 deletions(-) diff --git a/project/dae/templates/dae/embauche_consulter.html b/project/dae/templates/dae/embauche_consulter.html index 1d80492..e26ac8f 100644 --- a/project/dae/templates/dae/embauche_consulter.html +++ b/project/dae/templates/dae/embauche_consulter.html @@ -87,9 +87,9 @@

Pièces jointes

@@ -156,7 +156,8 @@ {% for contrat in dossier.contrats.all %} {{ contrat.type }} - {{ contrat.fichier.name }} + {{ contrat.fichier.name|basename }} Supprimer {% empty %} diff --git a/project/dae/templates/dae/embauche_pdf.html b/project/dae/templates/dae/embauche_pdf.html index 737160b..7f4a0cb 100644 --- a/project/dae/templates/dae/embauche_pdf.html +++ b/project/dae/templates/dae/embauche_pdf.html @@ -1,3 +1,4 @@ +{% load dae %} @@ -76,7 +77,7 @@

Pièces jointes

diff --git a/project/dae/templates/dae/poste_resume.html b/project/dae/templates/dae/poste_resume.html index d4fa663..bd562c8 100644 --- a/project/dae/templates/dae/poste_resume.html +++ b/project/dae/templates/dae/poste_resume.html @@ -1,3 +1,4 @@ +{% load dae %}

{{ poste.get_type_intervention_display }}

@@ -255,7 +256,7 @@

Pièces jointes

diff --git a/project/dae/templatetags/dae.py b/project/dae/templatetags/dae.py index 08e2655..cdfc638 100644 --- a/project/dae/templatetags/dae.py +++ b/project/dae/templatetags/dae.py @@ -1,5 +1,7 @@ # -*- encoding: utf-8 -*- +import os + from django import template from project.dae.workflow import ETATS_EDITABLE from project.dae.workflow import grp_correspondants_rh, grp_administrateurs, grp_drh @@ -34,3 +36,7 @@ def region_ou_service(implantation): if implantation.id == 19: return u"Services centraux de Paris (SCP)" return implantation.region + +@register.filter +def basename(path): + return os.path.basename(path) diff --git a/project/dae/urls.py b/project/dae/urls.py index 9ca7ec9..78a9f7f 100644 --- a/project/dae/urls.py +++ b/project/dae/urls.py @@ -10,7 +10,7 @@ urlpatterns = patterns( url(r'^poste/consulter/(?P.*)$', 'poste_consulter', name='poste_consulter'), url(r'^poste$', 'poste', name='poste'), url(r'^poste/(?P.*)$', 'poste', name='poste'), - url(r'^pieces-postes/(\d+)$', 'poste_piece', name='poste_piece'), + url(r'^pieces-postes/(\d+)/(.*)$', 'poste_piece', name='poste_piece'), # embauche url(r'^embauches$', 'embauches_liste', name='dae_embauches_liste'), @@ -22,7 +22,7 @@ urlpatterns = patterns( # contrats url(r'^embauches/(?P\d+)/contrats/ajouter$', 'embauche_ajouter_contrat', name='embauche_ajouter_contrat'), - url(r'^contrats/(\d+)$', 'contrat', name='contrat'), + url(r'^contrats/(\d+)/(.*)$', 'contrat', name='contrat'), url(r'^contrats/(\d+)/supprimer$', 'contrat_supprimer', name='contrat_supprimer'), # ajax @@ -30,7 +30,7 @@ urlpatterns = patterns( url(r'^employe/(?P.*)$', 'employe', name='employe'), url(r'^dossier$', 'dossier', name='dossier'), url(r'^dossier/(?P.*)/(?P.*)$', 'dossier', name='dossier'), - url(r'^pieces-dossiers/(\d+)$', 'dossier_piece', name='dossier_piece'), + url(r'^pieces-dossiers/(\d+)/(.*)$', 'dossier_piece', name='dossier_piece'), url(r'^dossier_resume/(?P.*)$', 'dossier_resume', name='dossier_resume'), url(r'^poste_resume/(?P.*)$', 'poste_resume', name='poste_resume'), url(r'^salaire$', 'salaire', name='salaire'), diff --git a/project/dae/views.py b/project/dae/views.py index 2076255..dbd1593 100644 --- a/project/dae/views.py +++ b/project/dae/views.py @@ -182,14 +182,11 @@ def postes_liste(request): return render_to_response('dae/postes_liste.html', vars, RequestContext(request)) @login_required -def poste_piece(request, id): +def poste_piece(request, id, filename): """Téléchargement d'une pièce jointe à un poste.""" piece = get_object_or_404(dae.PostePiece, pk=id) if dae.Poste.objects.ma_region_ou_service(request.user).filter(id=piece.poste_id).exists(): - return sendfile( - request, piece.fichier.path, attachment=True, - attachment_filename=os.path.basename(piece.fichier.name).encode('ascii', 'replace') - ) + return sendfile(request, piece.fichier.path) else: return redirect_interdiction(request) @@ -361,11 +358,8 @@ def employe(request, key): @dae_groupe_requis @get_contrat -def contrat(request, contrat): - return sendfile( - request, contrat.fichier.path, attachment=True, - attachment_filename=os.path.basename(contrat.fichier.name).encode('ascii', 'replace') - ) +def contrat(request, contrat, filename): + return sendfile(request, contrat.fichier.path) @dae_groupe_requis @get_contrat @@ -590,14 +584,11 @@ def liste_postes(request): return HttpResponse(dumps(data)) @login_required -def dossier_piece(request, id): +def dossier_piece(request, id, filename): """Téléchargement d'une pièce jointe à un poste.""" piece = get_object_or_404(dae.DossierPiece, pk=id) if dae.Dossier.objects.ma_region_ou_service(request.user).filter(id=piece.dossier_id).exists(): - return sendfile( - request, piece.fichier.path, attachment=True, - attachment_filename=os.path.basename(piece.fichier.name).encode('ascii', 'replace') - ) + return sendfile(request, piece.fichier.path) else: return redirect_interdiction(request) -- 1.7.10.4