diff --git a/bt/models.py b/bt/models.py index b94cc1f184f1fac5bd9c58b0f096e97ca6c9235b..cc9e3644ecf8105894a7c3e6bedc321a8689d040 100644 --- a/bt/models.py +++ b/bt/models.py @@ -31,7 +31,7 @@ COUNTRIES = ( ('SK', _('Slovakia')), ('FI', _('Finland')), ('SE', _('Sweden')), - ('UK', _('United Kingdom ')), + ('UK', _('United Kingdom')), ) RESOURCES = ( @@ -91,6 +91,7 @@ class Comment(models.Model): class Attachment(models.Model): storage = models.FileField(upload_to='static') name= models.CharField(max_length=512) + type= models.CharField(max_length=512) comment = models.ForeignKey(Comment) class Admin: diff --git a/bt/views.py b/bt/views.py index 708f936cac51969a7ed7342f8a91189f0b31c426..0f551566188bb4f2373ab43b0aa7b57419f35a12 100644 --- a/bt/views.py +++ b/bt/views.py @@ -3,6 +3,7 @@ from django.http import HttpResponse, HttpResponseRedirect, Http404 from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext from django.core.files import File +from django.core.servers.basehttp import FileWrapper from django.conf import settings from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.core.exceptions import ObjectDoesNotExist @@ -163,7 +164,7 @@ def add(request): ) c.save() for f in request.FILES.getlist('attachments[]'): - a=Attachment(comment=c, name=f.name) + a=Attachment(comment=c, name=f.name, type=f.content_type) m = hashlib.sha256() for chunk in f.chunks(): m.update(chunk) @@ -229,6 +230,14 @@ def view(request,id): raise Http404 return render_to_response('view.html', { 'v': v, },context_instance=RequestContext(request)) +def get_attach(request,id): + f = get_object_or_404(Attachment, pk=id) + wrapper = FileWrapper(f.storage) + response=HttpResponse(wrapper, mimetype=f.type) + response['Content-Disposition'] = 'attachment; filename=%s' % f.name + response['Content-Length'] = f.storage.size + return response + def lookup(request): if request.method == 'GET': form = SearchViolation(request.GET) diff --git a/templates/view.html b/templates/view.html index 978157a5606d76ec497d809326501238da49ee75..3b257effca3df850eec565a355c00b9ccf16f279 100644 --- a/templates/view.html +++ b/templates/view.html @@ -99,7 +99,7 @@ $(document).ready(function() { {% trans "Attachments" %}