From 72bf28da53887eb2f73e05175de93267b95cd8c9 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Mon, 29 Jun 2015 23:27:10 +0100 Subject: [PATCH] Removed special characters from paperwork filenames - issue #103 --- RIGS/finance.py | 5 ++++- RIGS/models.py | 2 +- RIGS/rigboard.py | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/RIGS/finance.py b/RIGS/finance.py index e0f7ec7a..2ae0fc47 100644 --- a/RIGS/finance.py +++ b/RIGS/finance.py @@ -14,6 +14,7 @@ from z3c.rml import rml2pdf from RIGS import models +import re class InvoiceIndex(generic.ListView): model = models.Invoice @@ -63,8 +64,10 @@ class InvoicePrint(generic.View): pdfData = buffer.read() + escapedEventName = re.sub('[^a-zA-Z0-9 \n\.]', '', object.name) + response = HttpResponse(content_type='application/pdf') - response['Content-Disposition'] = "filename=Invoice %05d | %s.pdf" % (invoice.pk, object.name) + response['Content-Disposition'] = "filename=Invoice %05d | %s.pdf" % (invoice.pk, escapedEventName) response.write(pdfData) return response diff --git a/RIGS/models.py b/RIGS/models.py index 34f65724..4a86d9df 100644 --- a/RIGS/models.py +++ b/RIGS/models.py @@ -355,7 +355,7 @@ class Event(models.Model, RevisionMixin): return reverse_lazy('event_detail', kwargs={'pk': self.pk}) def __str__(self): - return str(self.pk) + ": " + self.name + return unicode(self.pk) + ": " + self.name class Meta: permissions = ( diff --git a/RIGS/rigboard.py b/RIGS/rigboard.py index 790a46f4..9853d9d0 100644 --- a/RIGS/rigboard.py +++ b/RIGS/rigboard.py @@ -124,7 +124,10 @@ class EventPrint(generic.View): merger.write(merged) response = HttpResponse(content_type='application/pdf') - response['Content-Disposition'] = "filename=N%05d | %s.pdf" % (object.pk, object.name) + + escapedEventName = re.sub('[^a-zA-Z0-9 \n\.]', '', object.name) + + response['Content-Disposition'] = "filename=N%05d | %s.pdf" % (object.pk, escapedEventName) response.write(merged.getvalue()) return response