version 1.315, 2006/02/25 20:25:02
|
version 1.320, 2006/02/27 19:40:21
|
Line 471 sub jscriptNform {
|
Line 471 sub jscriptNform {
|
# Given the score (as a number [0-1] and the weight) what is the final |
# Given the score (as a number [0-1] and the weight) what is the final |
# point value? This function will round to the nearest tenth, third, |
# point value? This function will round to the nearest tenth, third, |
# or quarter if one of those is within the tolerance of .00001. |
# or quarter if one of those is within the tolerance of .00001. |
sub compute_points |
sub compute_points { |
{ |
|
my ($score, $weight) = @_; |
my ($score, $weight) = @_; |
|
|
my $tolerance = .00001; |
my $tolerance = .00001; |
Line 483 sub compute_points
|
Line 482 sub compute_points
|
my ($factor) = @_; |
my ($factor) = @_; |
my $num = ($points * $factor) + $tolerance; |
my $num = ($points * $factor) + $tolerance; |
my $floored_num = floor($num); |
my $floored_num = floor($num); |
if ($num - $floored_num < 2 * $tolerance * $factor) |
if ($num - $floored_num < 2 * $tolerance * $factor) { |
{ |
|
return $floored_num / $factor; |
return $floored_num / $factor; |
} |
} |
return $points; |
return $points; |
Line 1415 SUBJAVASCRIPT
|
Line 1413 SUBJAVASCRIPT
|
|
|
#--- displays the grading box, used in essay type problem and grading by page/sequence |
#--- displays the grading box, used in essay type problem and grading by page/sequence |
sub gradeBox { |
sub gradeBox { |
my ($request,$symb,$uname,$udom,$counter,$partid,$record) = @_; |
my ($request,$symb,$uname,$udom,$counter,$partid,$record,$respid) = @_; |
my $checkIcon = '<img src="'.$request->dir_config('lonIconsURL'). |
my $checkIcon = '<img src="'.$request->dir_config('lonIconsURL'). |
'/check.gif" height="16" border="0" />'; |
'/check.gif" height="16" border="0" />'; |
my $wgt = &Apache::lonnet::EXT('resource.'.$partid.'.weight',$symb,$udom,$uname); |
my $wgt = &Apache::lonnet::EXT('resource.'.$partid.'.weight',$symb,$udom,$uname); |
Line 1423 sub gradeBox {
|
Line 1421 sub gradeBox {
|
'<font color="red">problem weight assigned by computer</font>'); |
'<font color="red">problem weight assigned by computer</font>'); |
$wgt = ($wgt > 0 ? $wgt : '1'); |
$wgt = ($wgt > 0 ? $wgt : '1'); |
my $score = ($$record{'resource.'.$partid.'.awarded'} eq '' ? |
my $score = ($$record{'resource.'.$partid.'.awarded'} eq '' ? |
'' : $$record{'resource.'.$partid.'.awarded'}*$wgt); |
'' : &compute_points($$record{'resource.'.$partid.'.awarded'},$wgt)); |
my $result='<input type="hidden" name="WGT'.$counter.'_'.$partid.'" value="'.$wgt.'" />'."\n"; |
my $result='<input type="hidden" name="WGT'.$counter.'_'.$partid.'" value="'.$wgt.'" />'."\n"; |
|
$result.='<br />'.$partid.' - '.$respid.'<br />'; |
my $display_part=&get_display_part($partid,undef,$symb); |
my $display_part=&get_display_part($partid,undef,$symb); |
my %last_resets = &get_last_resets($symb,$env{'request.course.id'}, |
my %last_resets = &get_last_resets($symb,$env{'request.course.id'}, |
[$partid]); |
[$partid]); |
Line 1473 sub gradeBox {
|
Line 1472 sub gradeBox {
|
'<input type="hidden" name="aggtries'.$counter.'_'.$partid.'" value="'. |
'<input type="hidden" name="aggtries'.$counter.'_'.$partid.'" value="'. |
$aggtries.'" />'."\n"; |
$aggtries.'" />'."\n"; |
$result.='</td></tr></table>'."\n"; |
$result.='</td></tr></table>'."\n"; |
my $files=&get_submitted_files($udom,$uname,$partid,$counter,$record); |
$result.=&handbackBox($uname,$udom,$counter,$partid,$record,$respid); |
|
return $result; |
|
} |
|
sub handbackBox { |
|
my ($uname,$udom,$counter,$partid,$record,$respid) = @_; |
|
my $files=&get_submitted_files($udom,$uname,$partid,$respid,$record); |
|
my $result; |
if (@$files) { |
if (@$files) { |
my $file_counter = 0; |
my $file_counter = 0; |
foreach my $file (@$files) { |
foreach my $file (@$files) { |
$result.=' Return commented document to student. <input type="file" name="part'.$partid.'_returndoc'; |
$result.=' Return commented document to student. <input type="file" name="part'.$partid.'_returndoc'; |
$result.=$file_counter.'" />'."\n"; |
$result.=$file_counter.'" />'."\n"; |
$result.='<input type="hidden" name="respid" value="'.$counter.'" />'; |
$result.='<input type="hidden" name="respid" value="'.$respid.'" />'; |
$result.='<input type="hidden" name="returndocorig'.$file_counter.'" value="'.$file.'" />'; |
$result.='<input type="hidden" name="returndocorig'.$file_counter.'" value="'.$file.'" /><br />'; |
} |
} |
} |
} |
|
return $result; |
|
|
return $result; |
|
} |
} |
|
|
sub show_problem { |
sub show_problem { |
Line 1827 KEYWORDS
|
Line 1830 KEYWORDS
|
$display_part.' <font color="#999999">( ID '.$respid. |
$display_part.' <font color="#999999">( ID '.$respid. |
' )</font> '; |
' )</font> '; |
my $files=&get_submitted_files($udom,$uname,$partid,$respid,\%record); |
my $files=&get_submitted_files($udom,$uname,$partid,$respid,\%record); |
# if ($record{"resource.$partid.$respid.portfiles"}) { |
|
# my $file_url = '/uploaded/'.$udom.'/'.$uname.'/portfolio'; |
|
# foreach my $file (split(',',$record{"resource.$partid.$respid.portfiles"})) { |
|
# push(@files,$file_url.$file); |
|
# } |
|
# } |
|
# if ($record{"resource.$partid.$respid.uploadedurl"}) { |
|
# push(@files,$record{"resource.$partid.$respid.uploadedurl"}); |
|
# } |
|
if (@$files) { |
if (@$files) { |
$lastsubonly.='<br /><font color="red" size="1">Like all files provided by users, this file may contain virusses</font><br />'; |
$lastsubonly.='<br /><font color="red" size="1">Like all files provided by users, this file may contain virusses</font><br />'; |
my $file_counter = 0; |
my $file_counter = 0; |
Line 1920 KEYWORDS
|
Line 1914 KEYWORDS
|
my %seen = (); |
my %seen = (); |
my @partlist; |
my @partlist; |
my @gradePartRespid; |
my @gradePartRespid; |
for (sort keys(%$handgrade)) { |
for my $part_resp(sort keys(%$handgrade)) { |
my ($partid,$respid) = split(/_/); |
my ($partid,$respid) = split(/_/, $part_resp); |
next if ($seen{$partid} > 0); |
#next if ($seen{$partid} > 0); |
|
if ($seen{$partid} > 0) { |
|
$request->print(&handbackBox($uname,$udom,$counter,$partid,\%record,$respid)); |
|
next; |
|
} |
$seen{$partid}++; |
$seen{$partid}++; |
next if ($$handgrade{$_} =~ /:no$/ && $env{'form.lastSub'} =~ /^(hdgrade)$/); |
next if ($$handgrade{$part_resp} =~ /:no$/ && $env{'form.lastSub'} =~ /^(hdgrade)$/); |
push @partlist,$partid; |
push @partlist,$partid; |
push @gradePartRespid,$partid.'.'.$respid; |
push @gradePartRespid,$partid.'.'.$respid; |
|
$request->print(&gradeBox($request,$symb,$uname,$udom,$counter,$partid,\%record,$respid)); |
$request->print(&gradeBox($request,$symb,$uname,$udom,$counter,$partid,\%record)); |
|
} |
} |
$result='<input type="hidden" name="partlist'.$counter. |
$result='<input type="hidden" name="partlist'.$counter. |
'" value="'.(join ":",@partlist).'" />'."\n"; |
'" value="'.(join ":",@partlist).'" />'."\n"; |
Line 2896 sub viewstudentgrade {
|
Line 2893 sub viewstudentgrade {
|
$aggregates{$part} = 1; |
$aggregates{$part} = 1; |
} |
} |
if ($type eq 'awarded') { |
if ($type eq 'awarded') { |
my $pts = $score eq '' ? '' : $score*$$weight{$part}; |
my $pts = $score eq '' ? '' : &compute_points($score,$$weight{$part}); |
$result.='<input type="hidden" name="'. |
$result.='<input type="hidden" name="'. |
'GD_'.$student.'_'.$part.'_awarded_s" value="'.$pts.'" />'."\n"; |
'GD_'.$student.'_'.$part.'_awarded_s" value="'.$pts.'" />'."\n"; |
$result.='<input type="text" name="'. |
$result.='<input type="text" name="'. |