Ne pas utiliser Content-Disposition: attachment pour les fichiers téléchargeables...
authorEric Mc Sween <eric.mcsween@auf.org>
Thu, 3 Nov 2011 14:47:00 +0000 (10:47 -0400)
committerEric Mc Sween <eric.mcsween@auf.org>
Thu, 3 Nov 2011 14:47:00 +0000 (10:47 -0400)
project/dae/templates/dae/embauche_consulter.html
project/dae/templates/dae/embauche_pdf.html
project/dae/templates/dae/poste_resume.html
project/dae/templatetags/dae.py
project/dae/urls.py
project/dae/views.py

index 1d80492..e26ac8f 100644 (file)
@@ -87,9 +87,9 @@
 <fieldset>
   <h2>Pièces jointes</h2>
   <ul>
-  {% for pj in dossier.dossierpiece_set.all %}
-      <li><a href="{% url dossier_piece pj.id %}">{{ pj.nom }}</a></li>
-  {% endfor %}
+    {% for pj in dossier.dossierpiece_set.all %}
+    <li><a href="{% url dossier_piece pj.id pj.fichier.name|basename %}">{{ pj.nom }}</a></li>
+    {% endfor %}
   </ul>
 
 </fieldset>
     {% for contrat in dossier.contrats.all %}
     <tr>
       <td>{{ contrat.type }}</td>
-      <td><a href="{% url contrat contrat.id %}">{{ contrat.fichier.name }}</a></td>
+      <td><a href="{% url contrat contrat.id contrat.fichier.name|basename %}"
+          >{{ contrat.fichier.name|basename }}</a></td>
       <td><a href="{% url contrat_supprimer contrat.id %}">Supprimer</a></td>
     </tr>
     {% empty %}
index 737160b..7f4a0cb 100644 (file)
@@ -1,3 +1,4 @@
+{% load dae %}
 <html>
 
 <head>
@@ -76,7 +77,7 @@
   <h2>Pièces jointes</h2>
   <ul>
   {% for pj in dossier.dossierpiece_set.all %}
-      <li><a href="{% url dossier_piece pj.id %}">{{ pj.nom }}</a></li>
+      <li><a href="{% url dossier_piece pj.id pj.fichier.name|basename %}">{{ pj.nom }}</a></li>
   {% endfor %}
   </ul>
 
index d4fa663..bd562c8 100644 (file)
@@ -1,3 +1,4 @@
+{% load dae %}
 <fieldset>
     <h2><label>Type d'intervention : </label>{{ poste.get_type_intervention_display }}</h2>
 </fieldset>
 <h2>Pièces jointes</h2>
 <ul>
 {% for pj in poste.postepiece_set.all %}
-    <li><a href="{% url poste_piece pj.id %}">{{ pj.nom }}</a></li>
+    <li><a href="{% url poste_piece pj.id pj.fichier.name|basename %}">{{ pj.nom }}</a></li>
 {% endfor %}
 </ul>
 </fieldset>
index 08e2655..cdfc638 100644 (file)
@@ -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)
index 9ca7ec9..78a9f7f 100644 (file)
@@ -10,7 +10,7 @@ urlpatterns = patterns(
     url(r'^poste/consulter/(?P<key>.*)$', 'poste_consulter', name='poste_consulter'),
     url(r'^poste$', 'poste', name='poste'),
     url(r'^poste/(?P<key>.*)$', '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<dossier_id>\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<key>.*)$', 'employe', name='employe'),
     url(r'^dossier$', 'dossier', name='dossier'),
     url(r'^dossier/(?P<poste_key>.*)/(?P<employe_key>.*)$', '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_id>.*)$', 'dossier_resume', name='dossier_resume'),
     url(r'^poste_resume/(?P<dossier_id>.*)$', 'poste_resume', name='poste_resume'),
     url(r'^salaire$', 'salaire', name='salaire'),
index 2076255..dbd1593 100644 (file)
@@ -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)