From cb2ac10524ef705f90cef88c28095d610b474ea6 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sun, 25 May 2014 10:37:43 +0200 Subject: [PATCH] specify columns of feedback table on questionnaire edit form --- knowledge/survey/browser.py | 22 ++++++++++++++++++--- knowledge/survey/interfaces.py | 20 +++++++++---------- knowledge/survey/view_macros.pt | 34 ++++++++++---------------------- locales/de/LC_MESSAGES/loops.mo | Bin 24848 -> 24851 bytes locales/de/LC_MESSAGES/loops.po | 6 +++--- 5 files changed, 41 insertions(+), 41 deletions(-) diff --git a/knowledge/survey/browser.py b/knowledge/survey/browser.py index 5de6302..10f90cf 100644 --- a/knowledge/survey/browser.py +++ b/knowledge/survey/browser.py @@ -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 diff --git a/knowledge/survey/interfaces.py b/knowledge/survey/interfaces.py index e66656e..9799865 100644 --- a/knowledge/survey/interfaces.py +++ b/knowledge/survey/interfaces.py @@ -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'), diff --git a/knowledge/survey/view_macros.pt b/knowledge/survey/view_macros.pt index 56af418..bb976ba 100644 --- a/knowledge/survey/view_macros.pt +++ b/knowledge/survey/view_macros.pt @@ -18,33 +18,19 @@ - - - - - - - +
CategoryResponseScoreRankTeam ScoreTeam Rank
- - - - - - - + + +
diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo index 6d61ea85d7bedcadd176ca8342e43bdaccc29169..26ec710435d2057691fa31ac636944538849dd62 100644 GIT binary patch delta 1397 zcmXZbO-R&17{~EhGgH$w+gxATEX6JAASh-j5>`h3Lt2V-eQS3K$}~vmMGp~wD2yVO zl9WR7um=f(s91_F5g0@z2_0lFL7qB9qyLT$-=l&O zH{Tc&=rkq=D{(c3(T{bQi>+9K4r+cJHE#&l;t00jH7v(hSc;2Shrh52w{;m)h#gpu zy_#RcjS5yIia3vN-jmg3QY8*uEAHo3E*zrzl zYt;2l*iImi35V>&K09F;wb3ZBDaPf&?oV*}1%C7Nzynqeaz#$Mct4={`wR0sc| zI-BeEcnOM8ttv&e-m&p+)Pfim;~=V27f|yqp$ZvCZ8(7|a2nTR3XAYL>VWT1^D;K> zF7mN~z%n}M@AX>Njq4aEP9Hl9MA=phF2J08Hiqh6OYEiGY$+{a$7(1vA#ZiTvM4iw@t-E4>AGhNvQ~@)n13k6zm#72J zqpM0k@S#WZ3Dwfi)@9V=`H3nhC+_J-wK|Bp(`r-!TTuJdqaJG`s=#*C`iLDzQH90g z^j`^v2}l=J*$q@-)2O?;hf4Uu#^_QN)e_9#cV^)DvD1TR RH-*!o&PY}ko{G-o{Rgd0sgnQz delta 1393 zcmXZbPe@cz6vy#9PFj-ouCkaHzMv4$7j6lL9 z%Mc7)L@kOI(ky~#5rQST2@xVFTC|A3DJbY47=3@eyZXF)-hKC+d+vR=7F;(LT=QOE z(qoLt4;hn%Wtfdsn1g$86E>m`kKktPLCrghc{qagIF7}*h=uq81NaknV0GA-E!c*8 zF&Z{Wvyq1h0xDqIPPk*o53KW8#QP^$imy=xq)`R@#!U1^jLE<})YykwzXbEK(vE}H z#z@lHVG99u;uvnjPCH=`wNL_scnOv8F)Gm_*5VSD<2vrg(o@EqzzA03L)?k0s1E)? zbv82@brR&DT2+8*eY1^+P#?rlg`Gil>LO~MzE>fWs0F9cjk8#SbC`=yQ5$@Pnzw4> z$@e^z5lCYzW_LO*3t<7{Zq%6#qZYVq-(N!|zKL4!Hg@0~HsKdk=K?XO&>(JL+>F{# z8+xhVgn1|;a2mDHC~9X{u@0wE1uon7pHT~ZLnT;8ovpjexf6xfN>rz6P=(jo_yH_r z+>W{AH~logIyI=vx(`+0Vbu5Sc6<_5 zSge=+E5RTEIf|-m0@cD<)LGp_C46S%OIXZ!#g5ld34Wly|7+vkKBr@TR6!M}JOR|- zcCfF-x#i~x=\n" "Language-Team: loops developers \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"