From 6ff8e8211ad4c82b2171c8ec23d1497b05f98c1b Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sat, 24 May 2014 14:49:52 +0200 Subject: [PATCH] refactor result data structure, fix rank calculation, add team rank --- knowledge/survey/browser.py | 25 +++++++++++++------------ knowledge/survey/view_macros.pt | 19 ++++++++++--------- locales/de/LC_MESSAGES/loops.mo | Bin 24869 -> 24848 bytes locales/de/LC_MESSAGES/loops.po | 14 +++++++------- 4 files changed, 30 insertions(+), 28 deletions(-) diff --git a/knowledge/survey/browser.py b/knowledge/survey/browser.py index 4a76e83..5de6302 100644 --- a/knowledge/survey/browser.py +++ b/knowledge/survey/browser.py @@ -76,7 +76,8 @@ class SurveyView(ConceptView): if data: resp = Response(self.adapted, None) for qu in self.adapted.questions: - resp.values[qu] = data[qu.uid] + if qu.uid in data: + resp.values[qu] = data[qu.uid] qgAvailable = True for qg in self.adapted.questionGroups: if qg.uid in data: @@ -85,8 +86,8 @@ class SurveyView(ConceptView): qgAvailable = False if not qgAvailable: values = resp.getGroupedResult() - for qugroup, info, score in values: - resp.values[qugroup] = score + for v in values: + resp.values[v['group']] = v['score'] result.append(resp) return result @@ -106,22 +107,22 @@ class SurveyView(ConceptView): data[uid] = value response.values[question] = value values = response.getGroupedResult() - for qugroup, info, score in values: - data[self.getUidForObject(qugroup)] = score + for v in values: + data[self.getUidForObject(v['group'])] = v['score'] respManager.save(data) self.data = data self.errors = self.check(response) if self.errors: return [] - result = [dict(category=r[0].title, text=r[1].text, - score=int(round(r[2] * 100))) - for r in values] + 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: teamData = self.getTeamData(respManager) - ranks, averages = response.getTeamResult(values, teamData) - for idx, qgdata in enumerate(result): - qgdata['rank'] = ranks[idx] - qgdata['average'] = int(round(averages[idx] * 100)) + values = response.getTeamResult(values, teamData) + for idx, r in enumerate(values): + result[idx]['average'] = int(round(r['average'] * 100)) + result[idx]['teamRank'] = r['rank'] return result def check(self, response): diff --git a/knowledge/survey/view_macros.pt b/knowledge/survey/view_macros.pt index b7b6a4d..56af418 100644 --- a/knowledge/survey/view_macros.pt +++ b/knowledge/survey/view_macros.pt @@ -13,21 +13,21 @@

Feedback

+ tal:content="structure python: + item.renderText(header, 'text/restructured')" /> + i18n:translate="">Score + + i18n:translate="">Team Score - @@ -37,12 +37,13 @@ tal:content="fbitem/text" />
Category Response Score %Rank Rank Team Score %Team Rank
+ - - +
diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo index bbb2a9a7f5107d8028fa81bf3d348adc75f9dcc5..6d61ea85d7bedcadd176ca8342e43bdaccc29169 100644 GIT binary patch delta 4843 zcmXZe36Rd`9l-JbyBq7;b*9mbww521X)1--`5oWVml77GYe`YfIJooc^e$VrN*TMG^mG32v z-mjgk6-7~bVH9QH^H?7@VFTPA>ie(_^&ev$d>Ki4a$0!`4!9aeB2JjZv!xN$XEHe8?f-FSJh0<)-ZLH>(&@jo{_hi-HYpTO(b8MBI` zs5kb-Nw@^f+;1@-FQXZ#M)yf1`^5odVpAHLU^;dV?cIXC&=VA+6USjDPDKM*fSz~} zdcxxDiSo67|fh<4+S%z*j2RdoDk=t9x(_-)ih ze;;zt$JrAdR}$K1qZwX-ZoD2HmwcImk7z%-;4jdD$3p!S8pyfOej|7by_za?!P-yq z`;OUY2FlS?{|0?qAE4`g80uG%t4l^7Q}8w4K^IE@W*kUEbb*#=e0$h&#_(glsM|KH) zEB{7Qd>1|GL#%~4qvI>eM-Nhf=~#?)a3FfH5u?e!pGO%DKEnA}8&{$WSD*`Q!93iB zZtyEKz~iC+0y_R9G*dS*4-;eJ1LdRbgV8IVf?nmKG34KljWl?7yMjMKQ*;7-TvtN< zKDMOZU~C*fXEb9&(L0`jex}RN_0|U~(SQ%4`<*~Dc`-@BRD2Q|s?j^n92ZB}9nHu{ zbm0m37|sgL!yeQZp(opeZhROs@SRXUjrFPj9bNBZtcS@v6pZ8nn%b=K@pqbyY1G@I z3+16#)ENh3F}l!dtb-fT0AC8eiuu&v#K-XrI_@^QUKMhXWb`O5L}?Sk4+;8Mvav3< zKqs~jc0~i|g9f|;9lsV$@p`QJ-qEW$glq5=dVqct<0}}A*?#|XDEQf|MDMl|UFa}+ zr>C$1UPK?w4YdCO+TZx8_;c%kZafsT@M$yy&!8uM0nOMpG~=&ey5IjH3YmBWop=lz z;%Rh)%UJV9&=Xf<34VpMaMYyu&HM;W^=WjYn`q$oup6dL4sQz0=txYu@k9zfhMB=d zVZaLHkWmG?;2+SGeuxe67J9;mScth#^FXl_yWjzQ0?%Uye1P?_?UXo>f+^(R)C{Ac z36`K6%|I8Jj|TPwoQr$V*I$KR+5gbbsa0v5p&sZu!_f9A=mD3anO%ck;fv_o+E+^c z-QXY%Ms^gt7LpNxH+1Me}i-SYa6PBPUoP>>WM(AILuCoe@u>#%jm+0@wX)MIE z$R8!Xe+vF_$@vza3{JxWJc7RFOK1xJi*8(Ndb~jcG*eB{)Q<}7W$5^sXkd%bOszx5 zCDA~3U>(2zofP~5c^&<0xF3Dp$I%m>LpQz@+W&z*zS}qk>(7WYR)$Tf&qg2HN_76F z(7z4c_!V@$SMe#o|NRu6#5-u}dd-X@Ek2qW2qZ!UduQV48pktDP3-v%>YacYik>~>BL%kFYY$m$Fvfu_Zu zCc5FGnK&cO(SUN%4SS)V+i>)im!o&T6}_6*&~-jQ z7runfyM_jG3(aUXdh%NHxJHL=rZPN{n%cTv8c!iLKj(||#KT=>dB3B!t4aGcY3&lJ zZSC(gNmUdk(o!3XX4OgSU6{H$q(ie*MrnQ`)wQgDTJzF{^S&F6SiN$=lJW&ho?E(V NRh})WP16q6{XZYXD0Tn< delta 4868 zcmXZe3v8Cv8Nl)P`$}n{B2X?Z7vU@AB88$LP@r7pB2bWPxhhZ=H6;aw^+@c9}|&Yzhc5C_l zy>x5P%sr3p>?O2c6*_Jg8tB_-0PkUI){p+ogFC!{4!Dd)ehnRX6Ng|Ow!uNA4veDd z=t9fTah2%Z*oZE)EtKCxFK;zA#lxX|8uM8{`YbfuL{pSGI1ZpO8bC92hk58iMd;By zfKE6zw9i5pT87TEG1PBH1FH({dqVjTrrpsg9?Za(=+3VOZ=eg_Mgz$p4eq!xx^ zx$@9)ozWvG3iZ9vex>NR;lZ)N$wSD$5znH+lr0GjmB9^Y`?F{uRak$P=o!9^PW;Ev zek_zv2R}svxPWG$7QI{7(GOQNl>Gb9bZBgcU@pwtg9^6R<-h=DV56bJ9hsV*BUO)rAi1xpVPSjvT zd^eh)--i@>Is2mh%0hhwn&CC*!fCW$`b8eRM7z-me}i^B9LguqK+c5v%fWBaqq&Vv znDby1&Br`61MARKe}LYtkI{M0hVn(^=+e>GJb0V0qZ4I~j00(bPS750FGAagp{Xwm zPQ~_=XQOvvEjn%!y6{Wr+p`1Ba5cK2li1exzcy6-fOc#__?~^&-~dcf9*?GM89Koh z^zGRh>VJy{dOEb%Vn@oi(E0L5$MYAV~hz=Nz?r<)4$4VT8yU8{vHkRNNE2%+W!)oscV?R%yIFCx}xvl@GaBFv!JlI%%I{(qJdO7I4xR5dvXOL@m>BPV&;Ux%fY+e?H=rp_WBvP%9!)i_#S`cT20t7h!31pK`~MgZzBX&ov#mlW zI)I+(3A`K6p_k?|+I|OZZ#5}?-MXO*kHjW81I@q_=#HO5Gqw%Q_#2qv`(Mq&UHBe4 z@Gv&TQ|JQcvHp&rJFdfrFgZDj9>MYGo!N_~`V_j*H8k+=u?IGs67Ce5(Q%k|;i)`$ z8RiF$AjQ+j zzo{8TMJ|@13(Z3(ScC@l3eLx!Xu!A8Bg>i|pJf+pM!6K7XF{l-kM>`KW_AmDgs-A^ zYwvXO?*i{rVPqd*FFc6`@_p#|KlHtAR37*1hz8yxl>4Bm9*U-RBDTUA=={sk`PZQV zK8yTO6}^$>!4J)+=%xAwdt>H|_)JUC$Y*08T#N>`6AfT@Xx|sghk{4Y%X|X;fPH}m z@B{& z{)v6@bL2-U9p%o7e_VRwR2r6Jcl;2&%~#MAHk}{^0IYu<(a6g}eL3b)u0S)h9^K(qbm1LnV0%J+ z4Z5MD*cux=%0~*@p_y8Q2DI`~@^4DkQ{jRe(f9bL$X`v-j?nQl>_z!2Y>%zy#S1=w zPBa{yxGXpgTTz~iX6Pw2kRPKP+>VZWa~}D(!&{+ZKN`RxbVnyc{aJL!wP>JM(K~Ys zO=(>)IX})&HX2ZVFokCLUi3)&q5%v{^Wa3I(Azo|jc^V+K}9GpK?7Tb9>M0|b~LbG zp@AJlkLnNTf`1G3pJN-!UxjjFK|FsthX*HUflg3>W~2uiP+xSxG3e_y1HI+Xqi4Sh zJ(~UKJQvWwub|_;Ljy@v#2IaZ?z}A~?7D?QT~srpZR2FJL!#!f_SZ8K(QD-#^FoxH!K=G@T2R@tc~D^k-JR;;MGJ*`v1*7oHC kllMHau(H0kG8(mJ_2W-gKK|s&B~L$HUqzQ?Gv8_Se{H!bk^lez diff --git a/locales/de/LC_MESSAGES/loops.po b/locales/de/LC_MESSAGES/loops.po index 00fd886..a674499 100644 --- a/locales/de/LC_MESSAGES/loops.po +++ b/locales/de/LC_MESSAGES/loops.po @@ -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-07 12:00 CET\n" +"PO-Revision-Date: 2014-05-24 12:00 CET\n" "Last-Translator: Helmut Merz \n" "Language-Team: loops developers \n" "MIME-Version: 1.0\n" @@ -265,17 +265,17 @@ msgstr "Bitte beantworten Sie die angegebene Mindestanzahl an Fragen je Fragengr msgid "Obligatory question, must be answered" msgstr "Pflichtfrage, muss beantwortet werden" -msgid "Score %" -msgstr "Bewertung %" +msgid "Score" +msgstr "Bewertung" -msgid "Team Score %" -msgstr "Durchschnitt Team %" +msgid "Team Score" +msgstr "Durchschnitt Team" msgid "Rank" -msgstr "Rang im Team" +msgstr "Rang" msgid "Team Rank" -msgstr "Rang des Teams" +msgstr "Rang Team" # competence (qualification)