Added a new UI feature which now shows all of the event results (once decrypted) in a basic but easy to read table which can be enhanced at a later point
This commit is contained in:
parent
0ff10474c4
commit
33398b9993
8 changed files with 79 additions and 25 deletions
|
@ -11,9 +11,9 @@ urlpatterns = [
|
|||
url(r'^(?P<pk>[0-9a-f-]+)/$', login_required(views.EventDetailView.as_view()), name='view-event'),
|
||||
url(r'^(?P<pk>[0-9a-f-]+)/polls/$', login_required(views.EventDetailPollsView.as_view()), name='event-polls'),
|
||||
url(r'^(?P<pk>[0-9a-f-]+)/entities/$', login_required(views.EventDetailEntitiesView.as_view()), name='event-entities'),
|
||||
url(r'^(?P<pk>[0-9a-f-]+)/results/$', login_required(views.EventDetailResultsView.as_view()), name='event-results'),
|
||||
url(r'^(?P<pk>[0-9a-f-]+)/advanced/$', login_required(views.EventDetailAdvancedView.as_view()), name='event-advanced'),
|
||||
url(r'^(?P<event_id>[0-9a-f-]+)/end/$', login_required(views.event_end), name='end-event'),
|
||||
url(r'^(?P<event_id>[0-9a-f-]+)/results/$', login_required(views.results), name='event-results'),
|
||||
url(r'^(?P<event_id>[0-9a-f-]+)/edit/$', login_required(views.edit_event), name='edit-event'),
|
||||
url(r'^(?P<event_id>[0-9a-f-]+)/delete/$', login_required(views.del_event), name='del-event'),
|
||||
url(r'^(?P<event_id>[0-9a-f-]+)/decrypt/$', views.event_trustee_decrypt, name='decrypt-event'),
|
||||
|
|
|
@ -38,6 +38,21 @@ class EventDetailView(generic.DetailView):
|
|||
context['is_organiser'] = (not self.request.user.is_anonymous()) and (self.object.users_organisers.filter(email=self.request.user.email).exists())
|
||||
context['decrypted'] = self.object.status() == "Decrypted"
|
||||
|
||||
# Get the results for all polls
|
||||
polls = self.object.polls.all()
|
||||
|
||||
results = list()
|
||||
for poll in polls:
|
||||
result_json = poll.result_json
|
||||
|
||||
if result_json[len(result_json)-1] == ',':
|
||||
result_json = result_json[0:len(result_json)-1]
|
||||
|
||||
result_json = json.loads(result_json)
|
||||
results.append(result_json)
|
||||
|
||||
context['event_results'] = results
|
||||
|
||||
return context
|
||||
|
||||
|
||||
|
@ -63,6 +78,10 @@ class PollDetailView(generic.View):
|
|||
return context
|
||||
|
||||
|
||||
class EventDetailResultsView(EventDetailView):
|
||||
template_name = "polls/event_results.html"
|
||||
|
||||
|
||||
def util_get_poll_by_event_index(event, poll_id):
|
||||
return event.polls.get(uuid=poll_id)
|
||||
|
||||
|
@ -248,21 +267,6 @@ def event_end(request, event_id):
|
|||
return HttpResponseRedirect(reverse('polls:view-event', args=[event_id]))
|
||||
|
||||
|
||||
# Returns a JSONed version of the results
|
||||
def results(request, event_id):
|
||||
event = get_object_or_404(Event, pk=event_id)
|
||||
polls = event.polls.all()
|
||||
|
||||
results = ""
|
||||
results += "{\"polls\":["
|
||||
for poll in polls:
|
||||
results += poll.result_json
|
||||
|
||||
results += "]}"
|
||||
|
||||
return HttpResponse(results)
|
||||
|
||||
|
||||
def event_trustee_decrypt(request, event_id):
|
||||
event = get_object_or_404(Event, pk=event_id)
|
||||
access_key = request.GET.get('key', None)
|
||||
|
|
Reference in a new issue