version 1.4, 1999/12/01 18:22:00
|
version 1.12, 2000/02/22 18:10:27
|
Line 153 proc runScorer { setFile } {
|
Line 153 proc runScorer { setFile } {
|
configureOptions $num |
configureOptions $num |
loadScorerConfig $num |
loadScorerConfig $num |
Centre_Dialog $scorerWin default |
Centre_Dialog $scorerWin default |
|
# trace variable gScorer(quit.$num) w "scorerClose $num 0" |
} |
} |
|
|
########################################################### |
########################################################### |
Line 165 proc loadScorerConfig { num } {
|
Line 166 proc loadScorerConfig { num } {
|
|
|
set filename [file join $gFile($num) records scorer.output.$gScorer(set.$num)] |
set filename [file join $gFile($num) records scorer.output.$gScorer(set.$num)] |
if { [ catch { set fileId [ open $filename "r" ] } ] } { |
if { [ catch { set fileId [ open $filename "r" ] } ] } { |
displayError "The set \"$gScorer(set.$num)\" does not yet have an scorer.output file. " |
displayMessage "Creating a new scorer.output file for set $gScorer(set.$num)." |
return |
return |
} |
} |
set line [gets $fileId ] |
set line [gets $fileId ] |
Line 411 proc insertQuest { num where } {
|
Line 412 proc insertQuest { num where } {
|
} |
} |
} |
} |
renumberScorerQuest $num |
renumberScorerQuest $num |
|
update |
|
$gScorer(quest.$num) see $where |
} |
} |
|
|
########################################################### |
########################################################### |
Line 506 proc cloneScorerQuest { num } {
|
Line 509 proc cloneScorerQuest { num } {
|
|
|
set temp [ $gScorer(quest.$num) get [ $gScorer(quest.$num) curselection ] ] |
set temp [ $gScorer(quest.$num) get [ $gScorer(quest.$num) curselection ] ] |
$gScorer(quest.$num) insert end $temp |
$gScorer(quest.$num) insert end $temp |
|
$gScorer(quest.$num) see end |
renumberScorerQuest $num |
renumberScorerQuest $num |
} |
} |
|
|
Line 796 proc oneResponse { response max which }
|
Line 800 proc oneResponse { response max which }
|
########################################################### |
########################################################### |
########################################################### |
########################################################### |
proc parseLine { num answerLine answerStruct } { |
proc parseLine { num answerLine answerStruct } { |
global gScorer |
global gScorer gMult |
upvar $answerStruct parsedIn |
upvar $answerStruct parsedIn |
set result "" |
set result "" |
|
|
Line 826 proc parseLine { num answerLine answerSt
|
Line 830 proc parseLine { num answerLine answerSt
|
set perQuest [lindex $gScorer($sheet.Question) 2] |
set perQuest [lindex $gScorer($sheet.Question) 2] |
set parsedIn(multiplemarks) 0 |
set parsedIn(multiplemarks) 0 |
set parsedIn(spaces) 0 |
set parsedIn(spaces) 0 |
|
set parsedIn(maxQuest) $maxQuest |
for { set i 0 } { $i < $maxQuest } { incr i } { |
for { set i 0 } { $i < $maxQuest } { incr i } { |
if { [ catch { set gScorer(quest.$i.type.$num) } ] } { |
if { [ catch { set gScorer(quest.$i.type.$num) } ] } { |
set parsedIn(maxQuest) $i |
set parsedIn(maxQuest) $i |
Line 848 proc parseLine { num answerLine answerSt
|
Line 853 proc parseLine { num answerLine answerSt
|
set parsedIn(answer.$i) [string index $array $which] |
set parsedIn(answer.$i) [string index $array $which] |
} else { |
} else { |
if { $howmany > 1 } { |
if { $howmany > 1 } { |
set parsedIn(answer.$i) " " |
set options "" |
|
foreach possible $which { |
|
append options "[string index $array $possible] " |
|
} |
|
set selected [multipleChoice . "There were multiple marks on\nPaper Number $parsedIn(SerialNumber)\nStudentNumber $parsedIn(StudentNumber)\nProblem Number [expr $i+1]" $options] |
|
#puts ":$parsedIn(StudentNumber):$parsedIn(SerialNumber):[format %2d [expr $i+1]]:$selected:$options" |
|
set parsedIn(answer.$i) $selected |
|
#puts $parsedIn(answer.$i) |
incr parsedIn(multiplemarks) |
incr parsedIn(multiplemarks) |
} else { |
} else { |
if { $howmany < 1 } { |
if { $howmany < 1 } { |
Line 876 proc parseLine { num answerLine answerSt
|
Line 888 proc parseLine { num answerLine answerSt
|
[expr {$start + $which}]] |
[expr {$start + $which}]] |
} else { |
} else { |
if { $howmany > 1 } { |
if { $howmany > 1 } { |
append parsedIn(answer.$i) " " |
set options "" |
|
foreach possible $which { |
|
append options "[string index $array [expr {$start + $possible}]] " |
|
} |
|
set selected [multipleChoice . "There were multiple marks on\nPaper Number $parsedIn(SerialNumber)\nStudentNumber $parsedIn(StudentNumber)\nProblem Number [expr $i+1]" $options] |
|
#puts ":$parsedIn(StudentNumber):$parsedIn(SerialNumber):[format %2d [expr $i+1]]:$selected:$options" |
|
append parsedIn(answer.$i) $selected |
|
#puts $parsedIn(answer.$i) |
incr parsedIn(multiplemarks) |
incr parsedIn(multiplemarks) |
} else { |
} else { |
if { $howmany < 1 } { |
if { $howmany < 1 } { |
Line 928 proc parseLine { num answerLine answerSt
|
Line 947 proc parseLine { num answerLine answerSt
|
if { $result != "" } { |
if { $result != "" } { |
error "$result" |
error "$result" |
} |
} |
|
if { [catch {incr gMult $parsedIn(multiplemarks)}] } { |
|
set gMult $parsedIn(multiplemarks) |
|
} |
|
# puts $gMult |
} |
} |
|
|
proc getAnswers2 { PID set maxQuest num } { |
proc getAnswers2 { PID set maxQuest num } { |
Line 943 proc getAnswers { PID set maxQuest num }
|
Line 966 proc getAnswers { PID set maxQuest num }
|
global gFile gCapaConfig |
global gFile gCapaConfig |
set pwd [pwd] |
set pwd [pwd] |
cd $gFile($num) |
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 |
cd $pwd |
set result "" |
set result "" |
foreach line [split $temp "\n"] { |
foreach line [split $temp "\n"] { |
switch [lindex [split $line :] 0] { |
switch -- [lindex [split $line :] 0] { |
ANS { lappend result [string range $line 4 end] } |
ANS { lappend result [string range $line 4 end] } |
} |
} |
} |
} |
Line 1026 proc handleStudent { num answerStructVar
|
Line 1049 proc handleStudent { num answerStructVar
|
if { [catch { set answerStruct(correct.$questionPID) \ |
if { [catch { set answerStruct(correct.$questionPID) \ |
[getAnswers $questionPID $gScorer(set.$num) \ |
[getAnswers $questionPID $gScorer(set.$num) \ |
$answerStruct(maxQuest) $num] } errorMsg ] } { |
$answerStruct(maxQuest) $num] } errorMsg ] } { |
puts $errorMsg |
catch {puts $errorMsg} |
scorerError $num UNABLE_TO_PARSE "$answerStruct(orignalLine)" \ |
scorerError $num UNABLE_TO_PARSE "$answerStruct(orignalLine)" \ |
$answerStruct(StudentNumber) |
$answerStruct(StudentNumber) |
error UNABLE_TO_PARSE |
error UNABLE_TO_PARSE |
Line 1242 proc setOutput { num answerStructVar} {
|
Line 1265 proc setOutput { num answerStructVar} {
|
########################################################### |
########################################################### |
########################################################### |
########################################################### |
proc finishScoring { num answerStructVar} { |
proc finishScoring { num answerStructVar} { |
global gScorer |
global gScorer gMult |
scorerMessage $num "Finishing . . ." |
scorerMessage $num "Finishing . . ." |
|
#puts $gMult |
# puts "errors:" |
# puts "errors:" |
# puts "$gScorer(errors.$num)" |
# puts "$gScorer(errors.$num)" |
scorerMessage $num "Finished, Feel free to Update .sb" |
scorerMessage $num "Finished, Feel free to Update .sb" |
Line 1289 proc scorerStudent { num } {
|
Line 1313 proc scorerStudent { num } {
|
set gScorer(needToUpdateDB) 1 |
set gScorer(needToUpdateDB) 1 |
#parseanswerline |
#parseanswerline |
if { [catch {parseLine $num $answer answerStruct} errorMsg ] } { |
if { [catch {parseLine $num $answer answerStruct} errorMsg ] } { |
displayError "Error parsing line: $errorMsg" |
global errorInfo |
|
displayError "Error parsing line: $errorMsg $errorInfo" |
} else { |
} else { |
#parse the set and grades it for any possiblely matching student |
#parse the set and grades it for any possiblely matching student |
if { ! [ catch { set result [handleStudent $num answerStruct]} errorMsg ] } { |
if { ! [ catch { set result [handleStudent $num answerStruct]} errorMsg ] } { |
Line 1355 proc unpauseScorer { num } {
|
Line 1380 proc unpauseScorer { num } {
|
proc finalScorer { num method studentNumber numRight } { |
proc finalScorer { num method studentNumber numRight } { |
global gScorer |
global gScorer |
|
|
|
#puts ":$numRight:" |
set answers "" |
set answers "" |
for { set i 0 } { $i < $gScorer(numQuest.$num) } { incr i } { |
for { set i 0 } { $i < $gScorer(numQuest.$num) } { incr i } { |
switch $gScorer(quest.$i.type.$num) { |
switch $gScorer(quest.$i.type.$num) { |
Line 1541 proc scorerQuit { num } {
|
Line 1567 proc scorerQuit { num } {
|
global gScorer |
global gScorer |
set gScorer(pause.$num) 1 |
set gScorer(pause.$num) 1 |
set gScorer(quit.$num) 1 |
set gScorer(quit.$num) 1 |
puts [trace vinfo gScorer(quit.$num)] |
#puts [trace vinfo gScorer(quit.$num)] |
catch {scorerMessage $num "Quitting. . . " info} |
catch {scorerMessage $num "Quitting. . . " info} |
} |
} |
|
|
Line 1553 proc scorerQuit { num } {
|
Line 1579 proc scorerQuit { num } {
|
proc scorerClose { num {mustClose 0} {dummy ""} {dummy2 ""} {dummy3 ""}} { |
proc scorerClose { num {mustClose 0} {dummy ""} {dummy2 ""} {dummy3 ""}} { |
global gScorer |
global gScorer |
|
|
puts "scorerClose" |
set message "Are you sure you wish to close?" |
if { $gScorer(needToUpdateDB) } { |
catch { |
set message \ |
if { $gScorer(needToUpdateDB) } { |
"Are you sure you wish to close, you haven't yet updated the .sb file." |
set message \ |
} else { |
"Are you sure you wish to close, you haven't yet updated the .sb file." |
set message "Are you sure you wish to close?" |
} |
} |
} |
if { (! $mustClose ) && [makeSure $message ] == "Cancel" } { return 0 } |
if { (! $mustClose ) && [makeSure $message ] == "Cancel" } { return 0 } |
stopScorer $num |
stopScorer $num |