diff options
author | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-06-07 18:22:57 (GMT) |
---|---|---|
committer | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-06-07 18:22:57 (GMT) |
commit | 40999feb0c94c68fff3b827304fff2ec1a0a79ee (patch) | |
tree | 96b954f3cd03b3b45f1c116b4fc082210411b73a /webapp/polls/views.py | |
parent | 708a7ee7600ec3e878f8428e6400c2100f69e1f2 (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.py | 32 |
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): |