diff options
-rwxr-xr-x | blackboard2gradebook.tcl | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/blackboard2gradebook.tcl b/blackboard2gradebook.tcl index 02dc901..4a8adff 100755 --- a/blackboard2gradebook.tcl +++ b/blackboard2gradebook.tcl @@ -162,6 +162,23 @@ proc foreignUsername2local { uname } { return "$uname@email.wm.edu" } +proc updateGrade { col locUname grade } { + set oldGrade [SelectColValue4User $col $locUname ] + #puts "$locUname: $col oldGrade \{$oldGrade\} --> \{$grade\}" + if { $oldGrade == $grade } { return } + if { [regexp -nocase -- {excuse} $oldGrade] } { + # remote system do not handle excuses + # so local system take precedence + #puts [list "not updating \"excused\" grade:" $locUname $col $oldGrade "-->" $grade] + return + } + if { $oldGrade != $grade } { + #puts "$locUname: $col oldGrade \{$oldGrade\} --> \{$grade\}" + puts [list $locUname $col $oldGrade "-->" $grade] + veval [list UpdateColValue4UserNameNonWeb $col $locUname $grade] + } +} + ######################### START of the execution ######################### set dryrun true @@ -199,22 +216,8 @@ foreach col [getColListFromAnyTable bdb export_table] { # change percentage to score set grade [ expr {$grade/100*$maxScore} ] } - set oldGrade [SelectColValue4User $shortCol $locUname ] - #puts "$locUname: oldGrade \{$oldGrade\} --> $grade" - if { $oldGrade == $grade } { continue } - if { [regexp -nocase -- {excuse} $oldGrade] } { - # remote system do not handle excuses - # so local system take precedence - puts "not updating \"excused\" grade" - continue - } - if { $oldGrade != $grade } { - puts "TESTING: skipping grades which change" - puts "$locUname: $shortCol oldGrade \{$oldGrade\} --> $grade" - #continue - } - veval [list UpdateColValue4UserNameNonWeb $shortCol $locUname $grade] } + updateGrade $shortCol $locUname $grade } } |