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]=='*':