From d7f62f09bcb59f2e472727df4986188d73e1bf93 Mon Sep 17 00:00:00 2001
From: root
Date: Thu, 1 Nov 2007 12:47:51 +0100
Subject: [PATCH] =?UTF-8?q?On=20ram=C3=A8ne=20le=20score=20dans=20l'interv?=
=?UTF-8?q?alle=20[0;=20100]=20pour=20avoir=20un=20vrai=20pourcentage.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
darcs-hash:20071101114751-dc76e-916930a27788ecc5db1f869a5a902888833e0901.gz
---
wiki/macro/Questionnaire.py | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/wiki/macro/Questionnaire.py b/wiki/macro/Questionnaire.py
index 0a76c819..77f99825 100755
--- a/wiki/macro/Questionnaire.py
+++ b/wiki/macro/Questionnaire.py
@@ -6,6 +6,7 @@
class questionnaire:
execute = 0
liste_questions = []
+ min_point = 0
max_point = 0
fonction_affiche = True
@@ -32,12 +33,16 @@ def question_choix_unique(f,QR,quest):
""" % { "id" : quest.execute , "Q" : QR[0][1]})
QR=QR[1:]
max = 0
+ min = 0
for (point,rep) in QR:
point = int_try(point)
- if (max point):
+ min = point
r+=f.rawHTML(""" %(rep)s
\n"""% { "point" : point , "id" : quest.execute, "rep" : rep})
quest.max_point += max
+ quest.min_point += min
r += f.rawHTML("\n
\n")
return r
@@ -48,7 +53,10 @@ def question_choix_multiple(f,QR,quest):
QR=QR[1:]
for (point,rep) in QR:
point = int_try(point)
- quest.max_point += point
+ if point > 0:
+ quest.max_point += point
+ else:
+ quest.min_point += point
r+=f.rawHTML(""" %(rep)s
\n"""% { "point" : point , "id" : quest.execute, "rep" : rep})
r +=f.rawHTML("\n\n")
return r
@@ -64,7 +72,7 @@ def fonction_javascript(f,quest):
function update()
{
var result_p = document.getElementsByName('result_p')
- var point_result_p = Math.round(point_globale / %(max_point)i*10000)/100
+ var point_result_p = Math.round((point_globale-(%(min_point)i)) * 10000 / %(intervalle)i)/100
for (var i=0;i
-""" % {"max_point" : quest.max_point , "nb_quest" : quest.execute})
+""" % {"min_point": quest.min_point,
+ "intervalle": quest.max_point-quest.min_point,
+ "nb_quest": quest.execute})
else:
return ""
@@ -104,6 +114,9 @@ def result_pourcent(f,quest):
def result_max(f,quest):
return f.text("%i" % quest.max_point)
+def result_min(f,quest):
+ return f.text("%i" % quest.min_point)
+
def execute(macro,text):
try:
macro._macro_questionnaire.execute +=1
@@ -117,8 +130,10 @@ def execute(macro,text):
return fonction_javascript(f,quest) + result(f,quest)
elif text == "%":
return fonction_javascript(f,quest) + result_pourcent(f,quest)
- elif text == "m":
+ elif text == "M":
return fonction_javascript(f,quest) + result_max(f,quest)
+ elif text == "m":
+ return fonction_javascript(f,quest) + result_min(f,quest)
else:
QR = parse(text)
if QR[0][0][0]=='*':