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-10-04 03:14:13 (GMT)
committer Rogelio Mita <rogeliomita@activitycentral.com>2013-10-04 03:14:13 (GMT)
commitf4eefbfdf4b6d5da4ccd2c6a19499f20482657e7 (patch)
tree9226552693d9fcd0895cf1f3d197c393463f1648 /webapp/polls/views.py
parent13f7fddd7dd90ca12c6be1d3f6edbe5fd246ef84 (diff)
Refactor UnploadPollResultFormView
Diffstat (limited to 'webapp/polls/views.py')
-rw-r--r--webapp/polls/views.py67
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: