give groups as parameters to team calculation to make evaluation independent of user data

This commit is contained in:
Helmut Merz 2015-04-21 10:04:52 +02:00
parent abdf27372b
commit aa8814b29b
2 changed files with 5 additions and 6 deletions

View file

@ -87,8 +87,7 @@ Team evaluation
>>> resp01.values[qugroup] = resp01.getGroupedResult()[0]['score'] >>> resp01.values[qugroup] = resp01.getGroupedResult()[0]['score']
>>> resp03.values[qugroup] = resp03.getGroupedResult()[0]['score'] >>> resp03.values[qugroup] = resp03.getGroupedResult()[0]['score']
>>> teamData = resp01.getTeamResult(resp03.getGroupedResult(), >>> teamData = resp01.getTeamResult([qugroup], [resp01, resp03])
... [resp01, resp03])
>>> teamData >>> teamData
[{'average': 0.6666...}] [{'average': 0.6666...}]

View file

@ -125,14 +125,14 @@ class Response(object):
r['rank'] = ranks[idx] r['rank'] = ranks[idx]
return result return result
def getTeamResult(self, mine, teamData): def getTeamResult(self, groups, teamData):
result = [] result = []
for idx, qgdata in enumerate(mine): for idx, group in enumerate(groups):
values = [data.values.get(qgdata['group']) for data in teamData] values = [data.values.get(group) for data in teamData]
values = [v for v in values if v is not None] values = [v for v in values if v is not None]
#avg = sum(values) / len(teamData) #avg = sum(values) / len(teamData)
avg = sum(values) / len(values) 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]) ranks = getRanks([r['average'] for r in result])
for idx, r in enumerate(result): for idx, r in enumerate(result):
r['rank'] = ranks[idx] r['rank'] = ranks[idx]