--- loncom/homework/grades.pm 2003/05/16 19:00:23 1.89 +++ loncom/homework/grades.pm 2003/06/12 20:11:07 1.95 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.89 2003/05/16 19:00:23 albertel Exp $ +# $Id: grades.pm,v 1.95 2003/06/12 20:11:07 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1913,8 +1913,9 @@ sub viewgrades { my (undef,undef,$fullname) = &getclasslist($ENV{'form.section'},'1'); my $ctr = 0; foreach (sort {lc($$fullname{$a}) cmp lc($$fullname{$b}) } keys %$fullname) { - my ($uname,$udom) = split(/:/); - $result.=''."\n"; + my $uname = $_; + $uname=~s/:/_/; + $result.=''."\n"; $result.=&viewstudentgrade($url,$symb,$ENV{'request.course.id'}, $_,$$fullname{$_},\@parts,\%weight); $ctr++; @@ -1931,6 +1932,7 @@ sub viewgrades { sub viewstudentgrade { my ($url,$symb,$courseid,$student,$fullname,$parts,$weight) = @_; my ($uname,$udom) = split(/:/,$student); + $student=~s/:/_/; my %record=&Apache::lonnet::restore($symb,$courseid,$udom,$uname); my $result=''. ''; $result .= $header; $result .= ''."\n"; - + my $noupdate; for ($i=0; $i<$ENV{'form.total'}; $i++) { + my $line; my $user = $ENV{'form.ctr'.$i}; - my ($uname,$udom)=split(/:/,$user); + my $usercolon = $user; + $usercolon =~s/_/:/; + my ($uname,$udom)=split(/_/,$user); my %newrecord; my $updateflag = 0; - $result .= ''.$uname.' '. + $line .= ''.$uname.' '. $udom.' '. - $$fullname{$user}.' '; + $$fullname{$usercolon}.' '; foreach (@partid) { my $old_aw = $ENV{'form.GD_'.$user.'_'.$_.'_awarded_s'}; my $old_part_pcr = $old_aw/($weight{$_} ne '0' ? $weight{$_}:1); @@ -2062,7 +2067,7 @@ sub editgrades { } $score = 'excused' if (($ENV{'form.GD_'.$user.'_'.$_.'_solved'} eq 'excused') && ($score ne 'excused')); - $result .= ''.$old_aw.' '. + $line .= ''.$old_aw.' '. ''.$awarded. ($score eq 'excused' ? $score : '').' '; @@ -2085,17 +2090,23 @@ sub editgrades { $newrecord{'resource.'.$part.'regrader'}="$ENV{'user.name'}:$ENV{'user.domain'}"; $updateflag=1; } - $result .= ''.$old_aw.' '. + $line .= ''.$old_aw.' '. ''.$awarded.' '; } } - $result .= ''."\n"; + $line.=''."\n"; if ($updateflag) { $count++; &Apache::lonnet::cstore(\%newrecord,$symb,$ENV{'request.course.id'}, $udom,$uname); + $result.=$line; + } else { + $noupdate.=$line; } } + if ($noupdate) { + $result .= 'No Changes Occured For the Students Below'.$noupdate; + } $result .= ''."\n". &show_grading_menu_form ($symb,$url); my $msg = 'Number of records updated = '.$rec_update. @@ -2579,14 +2590,14 @@ sub getSymbMap { $mapiterator->next(); # skip the first BEGIN_MAP my $mapcurRes = $mapiterator->next(); # for "current resource" my $ctr=0; - while ($mapdepth > 0 && $ctr < 100) { + while ($mapdepth > 0) { if($mapcurRes == $mapiterator->BEGIN_MAP) { $mapdepth++; } if($mapcurRes == $mapiterator->END_MAP) { $mapdepth++; } if (ref($mapcurRes) && $mapcurRes->is_problem() && !$mapcurRes->randomout) { $countProblems++; } - $ctr++; + $mapcurRes = $mapiterator->next(); } if ($countProblems > 0) { my $title = $curRes->compTitle(); @@ -2658,7 +2669,6 @@ sub displayPage { if (ref($curRes) && $curRes->is_problem() && !$curRes->randomout) { my $parts = $curRes->parts(); - $parts = &temp_parts_fix($parts); # remove line when lonnavmap is fixed my $title = $curRes->compTitle(); my $symbx = $curRes->symb(); $studentTable.=''.$question. @@ -2751,18 +2761,6 @@ sub displayPage { return ''; } -sub temp_parts_fix { #remove sub once lonnavmap is fixed - my $parts = shift; - my %seen = (); - my @correctParts = (); - foreach (@{$parts}) { - next if ($seen{$_} > 0); - $seen{$_}++; - push @correctParts,$_; - } - return \@correctParts; -} - sub updateGradeByPage { my ($request) = shift; @@ -2803,7 +2801,6 @@ sub updateGradeByPage { if (ref($curRes) && $curRes->is_problem() && !$curRes->randomout) { my $parts = $curRes->parts(); - $parts = &temp_parts_fix($parts); # remove line when lonnavmap is fixed my $title = $curRes->compTitle(); my $symbx = $curRes->symb(); $studentTable.=''.$question.