--- loncom/homework/grades.pm 2007/06/16 23:00:09 1.415 +++ loncom/homework/grades.pm 2007/06/17 02:11:44 1.416 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.415 2007/06/16 23:00:09 www Exp $ +# $Id: grades.pm,v 1.416 2007/06/17 02:11:44 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -6453,7 +6453,13 @@ sub assign_clicker_grades { my ($r)=@_; my ($symb)=&get_symb($r); if (!$symb) {return '';} +# See which part we are saving to + my ($partlist,$handgrade,$responseType) = &response_type($symb); +# FIXME: This should probably look for the first handgradeable part + my $part=$$partlist[0]; +# Start screen output my ($result) = &showResourceInfo($symb,$env{'form.probTitle'}); + my $heading=&mt('Assigning grades based on clicker file'); $result.=(<
@@ -6493,6 +6499,7 @@ ENDHEADER # Start grading my $pcorrect=$env{'form.pcorrect'}; my $pincorrect=$env{'form.pincorrect'}; + my $storecount=0; foreach my $key (keys(%env)) { if ($key=~/^form\.student\:(.*)$/) { my $user=$1; @@ -6511,12 +6518,26 @@ ENDHEADER } } } - my $ave=$sum/$number; - $result.='
'.$user.' - '.$env{$key}.': '.$ave; + my $ave=$sum/(100*$number); +# Store + my ($username,$domain)=split(/\:/,$user); + my %grades=(); + $grades{"resource.$part.solved"}='correct_by_override'; + $grades{"resource.$part.awarded"}=$ave; + $grades{"resource.regrader"}="$env{'user.name'}:$env{'user.domain'}"; + my $returncode=&Apache::lonnet::cstore(\%grades,$symb, + $env{'request.course.id'}, + $domain,$username); + if ($returncode ne 'ok') { + $result.="
Failed to save student $username:$domain. Message when trying to save was ($returncode)"; + } else { + $storecount++; + } } } # We are done - $result.='
'."\n". + $result.='
'.&mt('Successfully stored grades for [_1] student(s).',$storecount). + ''."\n". '

'."\n"; return $result.&show_grading_menu_form($symb); }