diff options
author | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-10-04 03:14:13 (GMT) |
---|---|---|
committer | Rogelio Mita <rogeliomita@activitycentral.com> | 2013-10-04 03:14:13 (GMT) |
commit | f4eefbfdf4b6d5da4ccd2c6a19499f20482657e7 (patch) | |
tree | 9226552693d9fcd0895cf1f3d197c393463f1648 /webapp/polls/views.py | |
parent | 13f7fddd7dd90ca12c6be1d3f6edbe5fd246ef84 (diff) |
Refactor UnploadPollResultFormView
Diffstat (limited to 'webapp/polls/views.py')
-rw-r--r-- | webapp/polls/views.py | 67 |
1 files changed, 29 insertions, 38 deletions
diff --git a/webapp/polls/views.py b/webapp/polls/views.py index 684a58f..3f8d399 100644 --- a/webapp/polls/views.py +++ b/webapp/polls/views.py @@ -22,11 +22,9 @@ from django.conf import settings from utils.forms import BadFormValidation from utils.data_structure import dict_merge -from polls.models import (WIDGET_TYPES, Structure, Poll, PollResult, - PollResultFile) +from polls.models import (WIDGET_TYPES, Structure, Poll, PollResultFile) from polls.models import is_image_file from polls.forms import PollForm -from pollster.models import Pollster module_path = settings.CLOCK_CLASS.split('.')[:-1] @@ -365,6 +363,7 @@ class UnploadPollResultFormView(TemplateView): to_json = [] existing = [] not_authored_by_user = [] + poll_not_assigned_to_user = [] news = [] # Comprueba que los archvos .poll_result sean archivos validos @@ -377,6 +376,8 @@ class UnploadPollResultFormView(TemplateView): existing.append(file_.name) elif not prf.is_authored_by(user): not_authored_by_user.append(file_.name) + elif not prf.poll_is_assigned_to(user): + poll_not_assigned_to_user.append(file_.name) else: news.append(file_) except ValueError: @@ -396,43 +397,33 @@ class UnploadPollResultFormView(TemplateView): ) messages.add_message(request, messages.ERROR, msg) - if len(news): - - # crea un poll result con todos los archivos implicados - poll_result = PollResult(to_json) - - poll = poll_result.get_poll() - pollster = Pollster.get_by_user_id(request.user.id) + if len(poll_not_assigned_to_user): + msg = u'Estos son resultados de una encuesta \ + que no le fué asignada. {0}'.format( + ", ".join(poll_not_assigned_to_user) + ) + messages.add_message(self.request, messages.ERROR, msg) - # valida que el pollster esté asignado a la poll en cuestión - assigned_polls_id = [ - p.id for p in poll.assigned_to_pollster(pollster)] + if len(news): - if poll.id not in assigned_polls_id: - msg = u'Estos son resultados de una encuesta \ - que no le fué asignada.' - messages.add_message(self.request, messages.ERROR, msg) - else: - # End validations - - date_time_string = Clock.get_time_string() - uploaded_files = [ - (f.name, f.temporary_file_path()) for f in news - ] - for name, path in uploaded_files: - result_file = PollResultFile(path) - result_file.name = name - result_file.set_upload_timestamp(date_time_string) - result_file.save() - - processed_files = [file_.name for file_ in news] - messages.add_message( - self.request, - messages.SUCCESS, - u'Los resultados se guardaron con éxito.\ - Los siguientes archivos fueron procesados: \ - %s' % ", ".join(processed_files) - ) + date_time_string = Clock.get_time_string() + uploaded_files = [ + (f.name, f.temporary_file_path()) for f in news + ] + for name, path in uploaded_files: + result_file = PollResultFile(path) + result_file.name = name + result_file.set_upload_timestamp(date_time_string) + result_file.save() + + processed_files = [file_.name for file_ in news] + messages.add_message( + self.request, + messages.SUCCESS, + u'Los resultados se guardaron con éxito.\ + Los siguientes archivos fueron procesados: \ + %s' % ", ".join(processed_files) + ) # si no hay ningún archivo else: |