--- loncom/homework/grades.pm 2004/07/16 19:50:23 1.205 +++ loncom/homework/grades.pm 2004/08/06 22:06:14 1.207 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.205 2004/07/16 19:50:23 matthew Exp $ +# $Id: grades.pm,v 1.207 2004/08/06 22:06:14 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -167,6 +167,21 @@ sub response_type { return \@partlist,\%handgrade,\%responseType; } +sub get_display_part { + my ($partID,$url,$symb)=@_; + if (!defined($symb) || $symb eq '') { + $symb=$ENV{'form.symb'}; + if ($symb eq '') { $symb=&Apache::lonnet::symbread($url) } + } + my $display=&Apache::lonnet::EXT('resource.'.$partID.'.display',$symb); + &Apache::lonnet::logthis("\nsymb $symb\n url $url\npartID $partID\ndisplay $display \n"); + if (defined($display) and $display ne '') { + $display.= " (<font color=\"#999900\">id $partID</font>)"; + } else { + $display=$partID; + } + return $display; +} #--- Show resource title #--- and parts and response type sub showResourceInfo { @@ -194,7 +209,8 @@ sub showResourceInfo { } $partsseen{$partID}=1; } - $result.='<td><b>Part </b>'.$partID.' <font color="#999999">'. + my $display_part=&get_display_part($partID,$url); + $result.='<td><b>Part: </b>'.$display_part.' <font color="#999999">'. $resID.'</font></td>'. '<td><b>Type: </b>'.$responsetype.'</td></tr>'; # '<td><b>Handgrade: </b>'.$handgrade.'</td></tr>'; @@ -691,7 +707,9 @@ LISTJAVASCRIPT '<td>'.&nameUserString('header').'</td>'; if ($ENV{'form.showgrading'} eq 'yes' && $submitonly ne 'all') { foreach (sort(@$partlist)) { - $gradeTable.='<td><b> Part '.(split(/_/))[0].' Status </b></td>'; + my $display_part=&get_display_part((split(/_/))[0],$url,$symb); + $gradeTable.='<td><b> Part: '.$display_part. + ' Status </b></td>'; } } $loop++; @@ -1093,7 +1111,7 @@ sub sub_page_kw_js { var ypos = (screen.height-height)/2-30; ypos = (ypos < 0) ? '0' : ypos; - pWin = window.open('', 'MessageCenter', 'toolbar=no,location=no,scrollbars='+scrollbar+',screenx='+xpos+',screeny='+ypos+',width=600,height='+height); + pWin = window.open('', 'MessageCenter', 'resizable=yes,toolbar=no,location=no,scrollbars='+scrollbar+',screenx='+xpos+',screeny='+ypos+',width=600,height='+height); pWin.focus(); pDoc = pWin.document; pDoc.open('text/html','replace'); @@ -1224,7 +1242,7 @@ sub sub_page_kw_js { var ypos = (screen.height-330)/2-30; ypos = (ypos < 0) ? '0' : ypos; - hwdWin = window.open('', 'KeywordHighlightCentral', 'toolbar=no,location=no,scrollbars=no,width=400,height=300,screenx='+xpos+',screeny='+ypos); + hwdWin = window.open('', 'KeywordHighlightCentral', 'resizeable=yes,toolbar=no,location=no,scrollbars=no,width=400,height=300,screenx='+xpos+',screeny='+ypos); hwdWin.focus(); var hDoc = hwdWin.document; hDoc.open('text/html','replace'); @@ -1298,8 +1316,9 @@ sub gradeBox { '' : $$record{'resource.'.$partid.'.awarded'}*$wgt); my $result='<input type="hidden" name="WGT'.$counter.'_'.$partid.'" value="'.$wgt.'" />'."\n"; + my $display_part=&get_display_part($partid,undef,$symb); $result.='<table border="0"><tr><td>'. - '<b>Part </b>'.$partid.' <b>Points: </b></td><td>'."\n"; + '<b>Part: </b>'.$display_part.' <b>Points: </b></td><td>'."\n"; my $ctr = 0; $result.='<table border="0"><tr>'."\n"; # display radio buttons in a nice table 10 across @@ -1631,11 +1650,12 @@ KEYWORDS my %seenparts; for my $part (sort keys(%$handgrade)) { my ($partid,$respid) = split(/_/,$part); + my $display_part=&get_display_part($partid,$url,$symb); if ($ENV{"form.$uname:$udom:$partid:submitted_by"}) { if (exists($seenparts{$partid})) { next; } $seenparts{$partid}=1; - my $submitby='<b>Part '.$partid. - ' Collaborative submission by: </b>'. + my $submitby='<b>Part:</b> '.$display_part. + ' <b>Collaborative submission by:</b> '. '<a href="javascript:viewSubmitter(\''. $ENV{"form.$uname:$udom:$partid:submitted_by"}. '\')"; TARGET=_self>'. @@ -1645,8 +1665,8 @@ KEYWORDS } my $responsetype = $responseType->{$partid}->{$respid}; if (!exists($record{"resource.$partid.$respid.submission"})) { - $lastsubonly.='<tr><td bgcolor="#ffffe6"><b>Part '. - $partid.'</b> <font color="#999999">( ID '.$respid. + $lastsubonly.='<tr><td bgcolor="#ffffe6"><b>Part:</b> '. + $display_part.' <font color="#999999">( ID '.$respid. ' )</font> '. '<font color="red">Nothing submitted - no attempts</font><br /><br />'; next; @@ -1674,8 +1694,9 @@ KEYWORDS if ($ENV{'form.lastSub'} eq 'lastonly' || ($ENV{'form.lastSub'} eq 'hdgrade' && $$handgrade{$part} eq 'yes')) { - $lastsubonly.='<tr><td bgcolor="#ffffe6"><b>Part '. - $partid.'</b> <font color="#999999">( ID '.$respid. + my $display_part=&get_display_part($partid,$url,$symb); + $lastsubonly.='<tr><td bgcolor="#ffffe6"><b>Part:</b> '. + $display_part.' <font color="#999999">( ID '.$respid. ' )</font> '; if ($record{"resource.$partid.$respid.uploadedurl"}) { &Apache::lonnet::allowuploaded('/adm/grades', @@ -2335,7 +2356,8 @@ sub viewgrades { $ctsparts.'" value="'.$partid.'" />'."\n"; $result.='<input type="hidden" name="weight_'. $partid.'" value="'.$weight{$partid}.'" />'."\n"; - $result.='<tr><td><b>Part '.$partid.' Point:</b> </td><td>'; + my $display_part=&get_display_part($partid,$url,$symb); + $result.='<tr><td><b>Part:</b> '.$display_part.' <b>Point:</b> </td><td>'; $result.='<table border="0"><tr>'; my $ctr = 0; while ($ctr<=$weight{$partid}) { # display radio buttons in a nice table 10 across @@ -2374,14 +2396,17 @@ sub viewgrades { my $display=&Apache::lonnet::metadata($url,$part.'.display'); $display =~ s|^Number of Attempts|Tries<br />|; # makes the column narrower if (!$display) { $display = &Apache::lonnet::metadata($url,$part.'.name'); } + my ($partid) = &split_part_type($part); + my $display_part=&get_display_part($partid,$url,$symb); if ($display =~ /^Partial Credit Factor/) { - my ($partid) = &split_part_type($part); - $result.='<td><b>Score Part '.$partid.'<br />(weight = '. - $weight{$partid}.')</b></td>'."\n"; + $result.='<td><b>Score Part:</b> '.$display_part. + ' <br /><b>(weight = '.$weight{$partid}.')</b></td>'."\n"; next; + } else { + $display =~s/\[Part: \Q$partid\E\]/Part:<\/b> $display_part/; } $display =~ s|Problem Status|Grade Status<br />|; - $result.='<td><b>'.$display.'</b></td>'."\n"; + $result.='<td><b>'.$display.'</td>'."\n"; } $result.='</tr>'; @@ -2511,9 +2536,10 @@ sub editgrades { } } foreach my $partid (@partid) { + my $display_part=&get_display_part($partid,$url,$symb); $result .= '<td colspan="'.$columns{$partid}. - '" align="center"><b>Part '.$partid. - '</b> (Weight = '.$weight{$partid}.')</td>'; + '" align="center"><b>Part:</b> '.$display_part. + ' (Weight = '.$weight{$partid}.')</td>'; } $result .= '</tr><tr bgcolor="#deffff">'; @@ -3222,13 +3248,14 @@ sub displaySubByDates { foreach my $partid (@{$parts}) { my @matchKey = sort(grep /^resource\.\Q$partid\E\..*?\.submission$/,@versionKeys); # next if ($$record{"$version:resource.$partid.solved"} eq ''); + my $display_part=&get_display_part($partid,undef,$symb); foreach my $matchKey (@matchKey) { if (exists($$record{$version.':'.$matchKey}) && $$record{$version.':'.$matchKey} ne '') { my ($responseId)=($matchKey=~ /^resource\.\Q$partid\E\.(.*?)\.submission$/); - $displaySub[0].='<b>Part '.$partid.' '; + $displaySub[0].='<b>Part:</b> '.$display_part.' '; $displaySub[0].='<font color="#999999">(ID '. - $responseId.')</font> '; + $responseId.')</font> <b>'; if ($$record{"$version:resource.$partid.tries"} eq '') { $displaySub[0].='Trial not counted'; } else { @@ -3246,14 +3273,14 @@ sub displaySubByDates { } } if (exists $$record{"$version:resource.$partid.award"}) { - $displaySub[1].='<b>Part '.$partid.'</b> '. + $displaySub[1].='<b>Part:</b> '.$display_part.' '. lc($$record{"$version:resource.$partid.award"}).' '. $mark{$$record{"$version:resource.$partid.solved"}}. '<br />'; } if (exists $$record{"$version:resource.$partid.regrader"}) { $displaySub[2].=$$record{"$version:resource.$partid.regrader"}. - ' (<b>'.&mt('Part').':</b> '.$partid.')'; + ' (<b>'.&mt('Part').':</b> '.$display_part.')'; } } # needed because old essay regrader has not parts info @@ -3350,12 +3377,13 @@ sub updateGradeByPage { $changeflag++; $newpts = ''; } - + my $display_part=&get_display_part($partid,undef, + $curRes->symb()); my $oldstatus = $ENV{'form.solved'.$question.'_'.$partid}; - $displayPts[0].=' <b>Part</b> '.$partid.' = '. + $displayPts[0].=' <b>Part:</b> '.$display_part.' = '. (($oldstatus eq 'excused') ? 'excused' : $oldpts). ' <br>'; - $displayPts[1].=' <b>Part</b> '.$partid.' = '. + $displayPts[1].=' <b>Part:</b> '.$display_part.' = '. (($score eq 'excused') ? 'excused' : $newpts). ' <br>';