--- capa/capa51/GUITools/gradesubjective.tcl 1999/11/18 17:55:24 1.4 +++ capa/capa51/GUITools/gradesubjective.tcl 1999/11/23 18:35:12 1.5 @@ -88,7 +88,7 @@ proc createGradeSubjWindow {} { set scoreandcom [toplevel $gradSubj.scoreandcom] wm title $scoreandcom "Control Panel" - wm protocol $gradSubj WM_DELETE_WINDOW "subjDone" + wm protocol $scoreandcom WM_DELETE_WINDOW "subjDone" set score [frame $scoreandcom.score] set command [frame $scoreandcom.command] @@ -207,14 +207,36 @@ proc subjCheckForNew {} { global gSubj } +proc checkGSubj {} { + global gSubj + if {[catch {set gSubj(stunums)}]} { + cd [file join $gSubj(dir) records set$gSubj(set) problem$gSubj(quest)] + set gSubj(stunums) [lsort -dictionary [glob *]] + if { [set num [lsearch $gSubj(stunums) gradingstatus]] != -1} { + set gSubj(stunums) [lreplace $gSubj(stunums) $num $num] + } + cd $gSubj(dir) + } + if {[catch {set gSubj(current)}]} {set gSubj(current) -1} + if {[catch {set gSubj(totalsec)}]} {set gSubj(totalsec) 0} + if {[catch {set gSubj(seconds)}]} {set gSubj(seconds) [clock seconds]} + if {[catch {set gSubj(togo)}]} {set gSubj(togo) [llength $gSubj(stunums)]} + if {[catch {set gSubj(allstunum)}] || + [catch {set gSubj(allname)}] || + [catch {set gSubj(allemail)}] } { + subjInitAllLists + } +} + proc subjRestore {} { global gSubj source gradingstatus subjCheckForNew set gSubj(seconds) [expr {[clock seconds] - $gSubj(sec)}] cd $gSubj(dir) - incr gSubj(current) -1 + if { [catch {incr gSubj(current) -1}]} { set gSubj(current) -1 } if { $gSubj(redoalllists) } { subjInitAllLists; set gSubj(redoalllists) 0 } + checkGSubj subjIndexResponse subjNext } @@ -230,14 +252,15 @@ proc subjSave {} { proc subjDone {} { global gSubj - subjSave + if { [catch {subjSave}] } { + displayMessage "Unable to save." + } unset gSubj destroy .gradesubjective } proc subjInitAllLists {} { global gSubj - puts "doing all lists" set i 0 catch {unset gSubj(allstunum)} catch {unset gSubj(allname)} @@ -252,7 +275,6 @@ proc subjInitAllLists {} { lappend gSubj(allname) [string range $aline 24 59] lappend gSubj(allemail) [string range $aline 60 99] } - puts "did $i lines" } proc subjInit {} { @@ -518,7 +540,7 @@ proc subjPrev {} { proc subjMessage { mesg {tag normal} } { global gSubj - displayMessage $message + displayMessage $mesg # $gSubj(msg) insert end "[clock format [clock seconds] -format {%I:%M:%S}] - $mesg\n" $tag # $gSubj(msg) see end } @@ -701,6 +723,8 @@ proc subjSendResponse {} { } incr which + set message "" + set stuList [$gSubj(idlist) get 0 end] foreach stu $stuList { set stu [lindex $stu 0]