--- capa/capa51/GUITools/scorer.tcl 1999/11/08 22:30:02 1.3 +++ capa/capa51/GUITools/scorer.tcl 2000/01/10 22:40:30 1.9 @@ -153,6 +153,7 @@ proc runScorer { setFile } { configureOptions $num loadScorerConfig $num Centre_Dialog $scorerWin default +# trace variable gScorer(quit.$num) w "scorerClose $num 0" } ########################################################### @@ -411,6 +412,8 @@ proc insertQuest { num where } { } } renumberScorerQuest $num + update + $gScorer(quest.$num) see $where } ########################################################### @@ -506,6 +509,7 @@ proc cloneScorerQuest { num } { set temp [ $gScorer(quest.$num) get [ $gScorer(quest.$num) curselection ] ] $gScorer(quest.$num) insert end $temp + $gScorer(quest.$num) see end renumberScorerQuest $num } @@ -760,7 +764,7 @@ proc initScorer { num } { proc getLine { num } { global gScorer - scorerMessage $num "Getting Responses" + scorerMessage $num "\nGetting Responses" set done 0 while { ! $done } { @@ -826,6 +830,7 @@ proc parseLine { num answerLine answerSt set perQuest [lindex $gScorer($sheet.Question) 2] set parsedIn(multiplemarks) 0 set parsedIn(spaces) 0 + set parsedIn(maxQuest) $maxQuest for { set i 0 } { $i < $maxQuest } { incr i } { if { [ catch { set gScorer(quest.$i.type.$num) } ] } { set parsedIn(maxQuest) $i @@ -943,7 +948,7 @@ proc getAnswers { PID set maxQuest num } global gFile gCapaConfig set pwd [pwd] cd $gFile($num) - set temp [exec $gCapaConfig($num.answers_command) $PID {} 1 $set] + set temp [exec $gCapaConfig($num.answers_command) $PID {} 0 $set] cd $pwd set result "" foreach line [split $temp "\n"] { @@ -1026,7 +1031,7 @@ proc handleStudent { num answerStructVar if { [catch { set answerStruct(correct.$questionPID) \ [getAnswers $questionPID $gScorer(set.$num) \ $answerStruct(maxQuest) $num] } errorMsg ] } { - puts $errorMsg + catch {puts $errorMsg} scorerError $num UNABLE_TO_PARSE "$answerStruct(orignalLine)" \ $answerStruct(StudentNumber) error UNABLE_TO_PARSE @@ -1286,8 +1291,6 @@ proc scorerStudent { num } { finishScoring $num answerStruct return } - incr gScorer(student.$num) - update set gScorer(needToUpdateDB) 1 #parseanswerline if { [catch {parseLine $num $answer answerStruct} errorMsg ] } { @@ -1302,6 +1305,8 @@ proc scorerStudent { num } { displayError "An error occured when attempting to grade a student. The error is: $errorMsg" } } + incr gScorer(student.$num) + update after idle "scorerStudent $num" } @@ -1541,7 +1546,7 @@ proc scorerQuit { num } { global gScorer set gScorer(pause.$num) 1 set gScorer(quit.$num) 1 - puts [trace vinfo gScorer(quit.$num)] + #puts [trace vinfo gScorer(quit.$num)] catch {scorerMessage $num "Quitting. . . " info} } @@ -1553,12 +1558,12 @@ proc scorerQuit { num } { proc scorerClose { num {mustClose 0} {dummy ""} {dummy2 ""} {dummy3 ""}} { global gScorer - puts "scorerClose" - if { $gScorer(needToUpdateDB) } { - set message \ - "Are you sure you wish to close, you haven't yet updated the .sb file." - } else { - set message "Are you sure you wish to close?" + set message "Are you sure you wish to close?" + catch { + if { $gScorer(needToUpdateDB) } { + set message \ + "Are you sure you wish to close, you haven't yet updated the .sb file." + } } if { (! $mustClose ) && [makeSure $message ] == "Cancel" } { return 0 } stopScorer $num