specify columns of feedback table on questionnaire edit form
This commit is contained in:
parent
6ff8e8211a
commit
cb2ac10524
5 changed files with 41 additions and 41 deletions
|
@ -60,6 +60,22 @@ class SurveyView(ConceptView):
|
|||
sft = self.adapted.showFeedbackText
|
||||
return sft is None and True or sft
|
||||
|
||||
@Lazy
|
||||
def feedbackColumns(self):
|
||||
cols = self.adapted.feedbackColumns
|
||||
if not cols:
|
||||
cols = [
|
||||
dict(name='text', label=u'Response'),
|
||||
dict(name='score', label=u'Score')]
|
||||
return cols
|
||||
|
||||
@Lazy
|
||||
def showTeamResults(self):
|
||||
for c in self.feedbackColumns:
|
||||
if c['name'] in ('average', 'teamRank'):
|
||||
return True
|
||||
return False
|
||||
|
||||
def getTeamData(self, respManager):
|
||||
#result = [myResponse]
|
||||
result = []
|
||||
|
@ -117,10 +133,10 @@ class SurveyView(ConceptView):
|
|||
result = [dict(category=r['group'].title, text=r['feedback'].text,
|
||||
score=int(round(r['score'] * 100)), rank=r['rank'])
|
||||
for r in values]
|
||||
if self.adapted.showTeamResults:
|
||||
if self.showTeamResults:
|
||||
teamData = self.getTeamData(respManager)
|
||||
values = response.getTeamResult(values, teamData)
|
||||
for idx, r in enumerate(values):
|
||||
teamValues = response.getTeamResult(values, teamData)
|
||||
for idx, r in enumerate(teamValues):
|
||||
result[idx]['average'] = int(round(r['average'] * 100))
|
||||
result[idx]['teamRank'] = r['rank']
|
||||
return result
|
||||
|
|
|
@ -23,6 +23,7 @@ Interfaces for surveys used in knowledge management.
|
|||
from zope.interface import Interface, Attribute
|
||||
from zope import interface, component, schema
|
||||
|
||||
from cybertools.composer.schema.grid.interfaces import Records
|
||||
from cybertools.knowledge.survey import interfaces
|
||||
from loops.interfaces import IConceptSchema, ILoopsAdapter
|
||||
from loops.util import _
|
||||
|
@ -38,19 +39,16 @@ class IQuestionnaire(IConceptSchema, interfaces.IQuestionnaire):
|
|||
default=4,
|
||||
required=True)
|
||||
|
||||
showFeedbackText = schema.Bool(
|
||||
title=_(u'Show Feedback Text'),
|
||||
description=_(u'If not set no feedback text will be shown on '
|
||||
u'the results page.'),
|
||||
default=True,
|
||||
feedbackColumns = Records(
|
||||
title=_(u'Feedback Columns'),
|
||||
description=_(u'Column definitions for the results table '
|
||||
u'on the feedback page.'),
|
||||
default=[],
|
||||
required=False)
|
||||
|
||||
showTeamResults = schema.Bool(
|
||||
title=_(u'Show Team Results'),
|
||||
description=_(u'If set the team-related columns will be shown on '
|
||||
u'the results page.'),
|
||||
default=False,
|
||||
required=False)
|
||||
feedbackColumns.column_types = [
|
||||
schema.Text(__name__='name', title=u'Column Name',),
|
||||
schema.Text(__name__='label', title=u'Column Label'),]
|
||||
|
||||
feedbackHeader = schema.Text(
|
||||
title=_(u'Feedback Header'),
|
||||
|
|
|
@ -18,33 +18,19 @@
|
|||
<table class="listing">
|
||||
<tr>
|
||||
<th i18n:translate="">Category</th>
|
||||
<th tal:condition="item/showFeedbackText"
|
||||
i18n:translate="">Response</th>
|
||||
<th class="center"
|
||||
i18n:translate="">Score</th>
|
||||
<th class="center"
|
||||
i18n:translate="">Rank</th>
|
||||
<tal:team condition="item/adapted/showTeamResults">
|
||||
<th class="center"
|
||||
i18n:translate="">Team Score</th>
|
||||
<th class="center"
|
||||
i18n:translate="">Team Rank</th>
|
||||
</tal:team>
|
||||
<th tal:repeat="col item/feedbackColumns"
|
||||
i18n:translate=""
|
||||
tal:attributes="class python:
|
||||
col['name'] != 'text' and 'center' or None"
|
||||
tal:content="col/label" />
|
||||
</tr>
|
||||
<tr tal:repeat="fbitem feedback">
|
||||
<td tal:content="fbitem/category" />
|
||||
<td tal:condition="item/showFeedbackText"
|
||||
tal:content="fbitem/text" />
|
||||
<td class="center"
|
||||
tal:content="fbitem/score" />
|
||||
<td class="center"
|
||||
tal:content="fbitem/rank" />
|
||||
<tal:team condition="item/adapted/showTeamResults">
|
||||
<td class="center"
|
||||
tal:content="fbitem/average" />
|
||||
<td class="center"
|
||||
tal:content="fbitem/teamRank" />
|
||||
</tal:team>
|
||||
<tal:cols repeat="col item/feedbackColumns">
|
||||
<td tal:define="name col/name"
|
||||
tal:attributes="class python:name != 'text' and 'center' or None"
|
||||
tal:content="fbitem/?name" />
|
||||
</tal:cols>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="button" id="show_questionnaire">
|
||||
|
|
Binary file not shown.
|
@ -3,7 +3,7 @@ msgstr ""
|
|||
|
||||
"Project-Id-Version: 0.13.0\n"
|
||||
"POT-Creation-Date: 2007-05-22 12:00 CET\n"
|
||||
"PO-Revision-Date: 2014-05-24 12:00 CET\n"
|
||||
"PO-Revision-Date: 2014-05-25 12:00 CET\n"
|
||||
"Last-Translator: Helmut Merz <helmutm@cy55.de>\n"
|
||||
"Language-Team: loops developers <helmutm@cy55.de>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -266,10 +266,10 @@ msgid "Obligatory question, must be answered"
|
|||
msgstr "Pflichtfrage, muss beantwortet werden"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Bewertung"
|
||||
msgstr "Ergebnis %"
|
||||
|
||||
msgid "Team Score"
|
||||
msgstr "Durchschnitt Team"
|
||||
msgstr "Durchschnitt Team %"
|
||||
|
||||
msgid "Rank"
|
||||
msgstr "Rang"
|
||||
|
|
Loading…
Add table
Reference in a new issue