From aa8814b29b455c35228f1fe9ba94f31e1f0f66b9 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Tue, 21 Apr 2015 10:04:52 +0200 Subject: [PATCH] give groups as parameters to team calculation to make evaluation independent of user data --- knowledge/survey/README.txt | 3 +-- knowledge/survey/questionnaire.py | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/knowledge/survey/README.txt b/knowledge/survey/README.txt index 3a95523..44da8f7 100644 --- a/knowledge/survey/README.txt +++ b/knowledge/survey/README.txt @@ -87,8 +87,7 @@ Team evaluation >>> resp01.values[qugroup] = resp01.getGroupedResult()[0]['score'] >>> resp03.values[qugroup] = resp03.getGroupedResult()[0]['score'] - >>> teamData = resp01.getTeamResult(resp03.getGroupedResult(), - ... [resp01, resp03]) + >>> teamData = resp01.getTeamResult([qugroup], [resp01, resp03]) >>> teamData [{'average': 0.6666...}] diff --git a/knowledge/survey/questionnaire.py b/knowledge/survey/questionnaire.py index b4f2390..3051efc 100644 --- a/knowledge/survey/questionnaire.py +++ b/knowledge/survey/questionnaire.py @@ -125,14 +125,14 @@ class Response(object): r['rank'] = ranks[idx] return result - def getTeamResult(self, mine, teamData): + def getTeamResult(self, groups, teamData): result = [] - for idx, qgdata in enumerate(mine): - values = [data.values.get(qgdata['group']) for data in teamData] + for idx, group in enumerate(groups): + values = [data.values.get(group) for data in teamData] values = [v for v in values if v is not None] #avg = sum(values) / len(teamData) avg = sum(values) / len(values) - result.append(dict(group=qgdata['group'], average=avg)) + result.append(dict(group=group, average=avg)) ranks = getRanks([r['average'] for r in result]) for idx, r in enumerate(result): r['rank'] = ranks[idx]