diff --git a/teamtemp/responses/models.py b/teamtemp/responses/models.py index 6941d68e..aa96346c 100644 --- a/teamtemp/responses/models.py +++ b/teamtemp/responses/models.py @@ -28,7 +28,7 @@ def _stats_for(query_set): result['count'] = query_set.count() result['average'] = query_set.aggregate(models.Avg('score')) result['words'] = query_set.values('word').annotate(models.Count("id")).order_by() - return result + return (result, query_set) class TeamTemperature(models.Model): diff --git a/teamtemp/templates/set.html b/teamtemp/templates/set.html index 2fe73607..4acaaa9e 100644 --- a/teamtemp/templates/set.html +++ b/teamtemp/templates/set.html @@ -76,7 +76,7 @@

Survey Settings

Team Name Change

{% for team in survey_teams %} - {{ team.team_name }}
+ {{ team.team_name }}
{% endfor %}
{{ form.current_team_name.errors }} diff --git a/teamtemp/views.py b/teamtemp/views.py index 2bbef85d..582d124f 100644 --- a/teamtemp/views.py +++ b/teamtemp/views.py @@ -1,28 +1,27 @@ import errno -import gviz_api import hashlib import json import os -import pytz import sys -import unirest as Unirest import urllib -from datetime import datetime from datetime import timedelta +from urlparse import urlparse + +import gviz_api +import pytz +import unirest as Unirest from django.conf import settings from django.contrib.auth.hashers import check_password, make_password -from django.http import Http404 -from django.http import HttpResponse -from django.shortcuts import render, HttpResponseRedirect, get_object_or_404 +from django.http import Http404, HttpResponse +from django.shortcuts import HttpResponseRedirect, get_object_or_404, render from django.utils import timezone from django_filters.rest_framework import DjangoFilterBackend -from rest_framework import viewsets, filters -from urlparse import urlparse +from rest_framework import filters, viewsets -from responses.forms import FilteredBvcForm, CreateSurveyForm, SurveyResponseForm, ResultsPasswordForm, ErrorBox, \ - AddTeamForm, SurveySettingsForm +from responses.forms import AddTeamForm, CreateSurveyForm, ErrorBox, FilteredBvcForm, ResultsPasswordForm, \ + SurveyResponseForm, SurveySettingsForm from responses.serializers import * -from teamtemp import utils, responses +from teamtemp import responses, utils class WordCloudImageViewSet(viewsets.ModelViewSet): @@ -204,35 +203,31 @@ def set_view(request, survey_id): def censor_word(censored_word, survey_id): data = {'word': ''} - num_rows = 0 - num_rows = TemperatureResponse.objects.filter(request=survey_id, word=censored_word).count() - TemperatureResponse.objects.filter(request=survey_id, word=censored_word).update(**data) + response_set = TemperatureResponse.objects.filter(request=survey_id, word=censored_word.lower()) + num_rows = response_set.count() + response_set.update(**data) return num_rows def change_team_name(team_name, new_team_name, survey_id): - data = {'team_name': new_team_name} - num_rows = 0 - if new_team_name != '': - num_rows = TemperatureResponse.objects.filter(request=survey_id, team_name=team_name).count() - TemperatureResponse.objects.filter(request=survey_id, team_name=team_name).update(**data) - - num_rows = num_rows + TeamResponseHistory.objects.filter(request=survey_id, team_name=team_name).count() - TeamResponseHistory.objects.filter(request=survey_id, team_name=team_name).update(**data) + response_objects = TemperatureResponse.objects.filter(request=survey_id, team_name=team_name) + history_objects = TeamResponseHistory.objects.filter(request=survey_id, team_name=team_name) + team_objects = Teams.objects.filter(request=survey_id, team_name=team_name) - num_rows = num_rows + Teams.objects.filter(request=survey_id, team_name=team_name).count() - Teams.objects.filter(request=survey_id, team_name=team_name).update(**data) - else: - num_rows = TemperatureResponse.objects.filter(request=survey_id, team_name=team_name).count() - TemperatureResponse.objects.filter(request=survey_id, team_name=team_name).delete() + num_rows = response_objects.count() + history_objects.count() + team_objects.count() - num_rows = num_rows + TeamResponseHistory.objects.filter(request=survey_id, team_name=team_name).count() - TeamResponseHistory.objects.filter(request=survey_id, team_name=team_name).delete() + if new_team_name != '': + data = {'team_name': new_team_name} - num_rows = num_rows + Teams.objects.filter(request=survey_id, team_name=team_name).count() - Teams.objects.filter(request=survey_id, team_name=team_name).delete() + response_objects.update(**data) + history_objects.update(**data) + team_objects.update(**data) + else: + response_objects.delete() + history_objects.delete() + team_objects.delete() return num_rows @@ -500,7 +495,7 @@ def reset_view(request, survey_id): for team in teams: summary = None summary_word_list = "" - team_stats = team_temp.team_stats([team['team_name']]) + (team_stats, response_objects) = team_temp.team_stats([team['team_name']]) for word in team_stats['words']: summary_word_list = summary_word_list + word['word'] + " " @@ -513,8 +508,7 @@ def reset_view(request, survey_id): archive_date=arch_date) summary.save() - TemperatureResponse.objects.filter(request=survey_id, team_name=team['team_name'], archived=False).update( - **data) + response_objects.update(**data) print >> sys.stderr, "Archiving: " + " " + team_temp.id + " at " + str(arch_date) @@ -596,7 +590,7 @@ def scheduled_archive(request, survey_id): for team in teams: summary = None summary_word_list = "" - team_stats = team_temp.team_stats([team['team_name']]) + (team_stats, team_response_objects) = team_temp.team_stats([team['team_name']]) for word in team_stats['words']: summary_word_list = summary_word_list + word['word'] + " " @@ -608,14 +602,14 @@ def scheduled_archive(request, survey_id): team_name=team['team_name'], archive_date=arch_date) summary.save() + average_total = average_total + team_stats['average']['score__avg'] average_count += 1 average_responder_total = average_responder_total + team_stats['count'] - TemperatureResponse.objects.filter(request=survey_id, team_name=team['team_name'], archived=False).update( - **data) + team_response_objects.update(**data) - # Save Survey Summary as AGREGATE AVERAGE for all teams + # Save Survey Summary as AGGREGATE AVERAGE for all teams summary = None summary_word_list = ""