--- loncom/homework/grades.pm 2003/05/30 21:20:20 1.91 +++ loncom/homework/grades.pm 2003/06/13 21:29:30 1.97 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.91 2003/05/30 21:20:20 albertel Exp $ +# $Id: grades.pm,v 1.97 2003/06/13 21:29:30 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -466,8 +466,13 @@ LISTJAVASCRIPT 'onClick="javascript:checkSelect(this.form.stuinfo);" '. 'value="'.$viewgrade.'" /></form>'."\n"; if ($ctr == 0) { - $gradeTable='<br /> <font color="red">'. - 'No submission found for this resource.</font><br />'; + my $num_students=(scalar(keys(%$fullname))); + if ($num_students eq 0) { + $gradeTable='<br /> <font color="red">There are no students currently enrolled.</font>'; + } else { + $gradeTable='<br /> <font color="red">'. + 'No submissions found for this resource for any students. ('.$num_students.' checked for submissions</font><br />'; + } } elsif ($ctr == 1) { $gradeTable =~ s/type=checkbox/type=checkbox checked/; } @@ -1924,6 +1929,10 @@ sub viewgrades { $result.='<input type="hidden" name="total" value="'.$ctr.'" />'."\n"; $result.='<input type="button" value="Submit Changes" '. 'onClick="javascript:submit();" TARGET=_self /></form>'."\n"; + if (scalar(%$fullname) eq 0) { + my $colspan=3+scalar(@parts); + $result='<font color="red">There are no students in section "'.$ENV{'form.section'}.'" with enrollment status "'.$ENV{'form.status'}.'" to modify or grade.</font>'; + } $result.=&show_grading_menu_form($symb,$url); return $result; } @@ -2035,16 +2044,19 @@ sub editgrades { $result .= '</tr><tr bgcolor="#deffff">'; $result .= $header; $result .= '</tr>'."\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 .= '<tr bgcolor="#ffffde"><td>'.$uname.' </td><td>'. + $line .= '<tr bgcolor="#ffffde"><td>'.$uname.' </td><td>'. $udom.' </td><td>'. - $$fullname{$user}.' </td>'; + $$fullname{$usercolon}.' </td>'; foreach (@partid) { my $old_aw = $ENV{'form.GD_'.$user.'_'.$_.'_awarded_s'}; my $old_part_pcr = $old_aw/($weight{$_} ne '0' ? $weight{$_}:1); @@ -2064,7 +2076,7 @@ sub editgrades { } $score = 'excused' if (($ENV{'form.GD_'.$user.'_'.$_.'_solved'} eq 'excused') && ($score ne 'excused')); - $result .= '<td align="center">'.$old_aw.' </td>'. + $line .= '<td align="center">'.$old_aw.' </td>'. '<td align="center">'.$awarded. ($score eq 'excused' ? $score : '').' </td>'; @@ -2087,17 +2099,23 @@ sub editgrades { $newrecord{'resource.'.$part.'regrader'}="$ENV{'user.name'}:$ENV{'user.domain'}"; $updateflag=1; } - $result .= '<td align="center">'.$old_aw.' </td>'. + $line .= '<td align="center">'.$old_aw.' </td>'. '<td align="center">'.$awarded.' </td>'; } } - $result .= '</tr>'."\n"; + $line.='</tr>'."\n"; if ($updateflag) { $count++; &Apache::lonnet::cstore(\%newrecord,$symb,$ENV{'request.course.id'}, $udom,$uname); + $result.=$line; + } else { + $noupdate.=$line; } } + if ($noupdate) { + $result .= '<tr bgcolor="#ffffff"><td align="center" colspan="7">No Changes Occured For the Students Below</td></tr>'.$noupdate; + } $result .= '</table></td></tr></table>'."\n". &show_grading_menu_form ($symb,$url); my $msg = '<b>Number of records updated = '.$rec_update. @@ -2377,7 +2395,7 @@ sub csvuploadassign { } $request->print('<h3>Assigning Grades</h3>'); my $courseid=$ENV{'request.course.id'}; - my ($classlist) = &getclasslist('all','1'); + my ($classlist) = &getclasslist('all',0); my @skipped; my $countdone=0; foreach my $grade (@gradedata) { @@ -2409,7 +2427,6 @@ sub csvuploadassign { $request->print('<br /><font size="+1"><b>Skipped Students</b></font><br />'); foreach my $student (@skipped) { $request->print("<br />$student"); } } - $request->print(&view_edit_entire_class_form($symb,$url)); $request->print(&show_grading_menu_form($symb,$url)); return ''; } @@ -2581,14 +2598,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();