Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/webapp/polls/views.py
diff options
context:
space:
mode:
authorRogelio Mita <rogeliomita@activitycentral.com>2013-06-07 18:22:57 (GMT)
committer Rogelio Mita <rogeliomita@activitycentral.com>2013-06-07 18:22:57 (GMT)
commit40999feb0c94c68fff3b827304fff2ec1a0a79ee (patch)
tree96b954f3cd03b3b45f1c116b4fc082210411b73a /webapp/polls/views.py
parent708a7ee7600ec3e878f8428e6400c2100f69e1f2 (diff)
When a pollster download a poll assigned to him, that poll must have pollster's id.
Diffstat (limited to 'webapp/polls/views.py')
-rw-r--r--webapp/polls/views.py32
1 files changed, 26 insertions, 6 deletions
diff --git a/webapp/polls/views.py b/webapp/polls/views.py
index 124f356..c4a00e2 100644
--- a/webapp/polls/views.py
+++ b/webapp/polls/views.py
@@ -2,6 +2,7 @@
import os
import json
import StringIO
+import warnings
from datetime import datetime
@@ -269,14 +270,33 @@ def download_poll(request, poll_id=None):
elif poll and poll.is_open():
raise Http404()
+ if not request.user.is_pollster:
+ # In here, somebody is downloading a poll, but is not a pollster.
+ pass
+
file_name = datetime.now().strftime("%d_%m_%Y_%H_%M_%S")
- # Download json file
- response = HttpResponse(
- poll.to_json(), content_type='application/json')
- response['Content-Disposition'] = (
- 'attachment; filename=%s.json' % file_name)
- return response
+ poll_template = None
+ pollster = getattr(request.user, "pollster", None)
+ with warnings.catch_warnings(record=True) as w:
+ poll_template = poll.get_template(pollster=pollster)
+
+ if len(w) == 1:
+ # In here, A logged user that is pollster is trying download
+ # a poll that is not assigned to him.
+ pass
+
+ if poll_template:
+ # Download json file
+ response = HttpResponse(
+ poll_template, content_type='application/json')
+ response['Content-Disposition'] = (
+ 'attachment; filename=%s.json' % file_name)
+ return response
+ else:
+ msg = "No se pudo descargar la encuesta."
+ messages.add_message(request, messages.ERROR, msg)
+ return HttpResponseRedirect(request.meta['HTTP_REFERER'])
def opt_thumb(request, poll_id, img_name):