Return report as a file
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Wed, 13 Nov 2013 12:22:21 +0000 (13:22 +0100)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Wed, 15 Jan 2014 10:18:59 +0000 (11:18 +0100)
wtem/admin.py

index 15430cc..0047e9d 100644 (file)
@@ -10,6 +10,8 @@ from django.core.urlresolvers import reverse
 from django.conf.urls import url, patterns
 from django.shortcuts import render
 from django.contrib.auth.models import User
+from django.http import HttpResponse
+from django.template.loader import render_to_string
 from .models import Submission, Assignment, Attachment, exercises
 from .middleware import get_current_request
 
@@ -189,12 +191,14 @@ class SubmissionsSet:
                         examiners.append(user)
 
 def report_view(request):
-    submissions = Submission.objects.all()
-    submissions = sorted(submissions, key = lambda s: -s.final_result)
-    return render(request, 'wtem/admin_report.csv', dict(
+    submissions = sorted(Submission.objects.all(), key = lambda s: -s.final_result)
+    toret = render_to_string('wtem/admin_report.csv', dict(
         submissionsSet = SubmissionsSet(submissions),
         exercise_ids = map(str, range(1,len(exercises)+1))
     ))
+    response = HttpResponse(toret, content_type = 'text/csv')
+    response['Content-Disposition'] = 'attachment; filename="wyniki.csv"'
+    return response
 
 admin.site.register(Submission, SubmissionAdmin)
 admin.site.register(Assignment)
\ No newline at end of file