directly reference questionnaire as question may be assigned to more than one questionnaire
This commit is contained in:
parent
2e76910134
commit
acc104cf95
2 changed files with 7 additions and 5 deletions
|
@ -278,21 +278,22 @@ class SurveyView(InstitutionMixin, ConceptView):
|
|||
result.append(item)
|
||||
return result
|
||||
|
||||
def getTeamResultsForQuestion(self, question):
|
||||
def getTeamResultsForQuestion(self, question, questionnaire):
|
||||
result = dict(average=0.0, stddev=0.0)
|
||||
if self.teamData is None:
|
||||
respManager = Responses(self.context)
|
||||
self.teamData = self.getTeamData(respManager)
|
||||
answerRange = question.answerRange or questionnaire.defaultAnswerRange
|
||||
values = [r.values.get(question) for r in self.teamData]
|
||||
values = [v for v in values if v is not None]
|
||||
if values:
|
||||
average = float(sum(values)) / len(values)
|
||||
if question.revertAnswerOptions:
|
||||
average = question.answerRange - average - 1
|
||||
average = answerRange - average - 1
|
||||
devs = [(average - v) for v in values]
|
||||
stddev = math.sqrt(sum(d * d for d in devs) / len(values))
|
||||
average = average * 100 / (question.answerRange - 1)
|
||||
stddev = stddev * 100 / (question.answerRange - 1)
|
||||
average = average * 100 / (answerRange - 1)
|
||||
stddev = stddev * 100 / (answerRange - 1)
|
||||
result['average'] = int(round(average))
|
||||
result['stddev'] = int(round(stddev))
|
||||
texts = [r.texts.get(question) for r in self.teamData]
|
||||
|
|
|
@ -243,7 +243,8 @@
|
|||
<tal:question
|
||||
define="qutype python:
|
||||
question.questionType or 'value_selection';
|
||||
data python:item.getTeamResultsForQuestion(question)">
|
||||
data python:
|
||||
item.getTeamResultsForQuestion(question, item.adapted)">
|
||||
<td>
|
||||
<div tal:content="question/text" />
|
||||
<div style="width: 90%; margin-left: 20px"
|
||||
|
|
Loading…
Add table
Reference in a new issue