--- loncom/interface/lonquickgrades.pm 2011/05/26 18:02:22 1.93
+++ loncom/interface/lonquickgrades.pm 2011/05/28 16:55:49 1.95
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Quick Student Grades Display
#
-# $Id: lonquickgrades.pm,v 1.93 2011/05/26 18:02:22 www Exp $
+# $Id: lonquickgrades.pm,v 1.95 2011/05/28 16:55:49 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -599,8 +599,8 @@ sub output_category_table {
my %performance=&dumpdata($navmaps);
my $maxpos=$#order;
for (my $i=0;$i<=$maxpos;$i++) {
- my ($value,$weight)=&output_and_calc_category($r,$cangrade,$navmaps,$order[$i],$i,$maxpos,\%performance,1,%categories);
- $sum+=$value*$weight;
+ my ($correct,$possible,$type,$weight)=&output_and_calc_category($r,$cangrade,$navmaps,$order[$i],$i,$maxpos,\%performance,1,%categories);
+ $sum+=$correct*$weight;
$total+=$weight;
}
#
@@ -632,8 +632,7 @@ sub output_category_table_header {
sub output_and_calc_category {
my ($r,$cangrade,$navmaps,$id,$currentpos,$maxpos,$performance,$output,%categories)=@_;
- my $value=0;
- my $weight=0;
+
my $iconpath = &Apache::loncommon::lonhttpdurl($r->dir_config('lonIconsURL') . "/");
my %lt=&Apache::lonlocal::texthash(
'up' => 'Move Up',
@@ -745,56 +744,72 @@ ENDMOVE
}
}
} elsif ($code eq 'droplow') {
- ($totalcorrect,@individual)=&drop(0,0,$value,@individual);
+ ($totalpossible,$totalcorrect,@individual)=&drop(0,0,$value,@individual);
} elsif ($code eq 'drophigh') {
- ($totalcorrect,@individual)=&drop(1,0,$value,@individual);
+ ($totalpossible,$totalcorrect,@individual)=&drop(1,0,$value,@individual);
} elsif ($code eq 'droplowperc') {
- ($totalcorrect,@individual)=&drop(0,1,$value,@individual);
+ ($totalpossible,$totalcorrect,@individual)=&drop(0,1,$value,@individual);
} elsif ($code eq 'drophighperc') {
- ($totalcorrect,@individual)=&drop(1,1,$value,@individual);
+ ($totalpossible,$totalcorrect,@individual)=&drop(1,1,$value,@individual);
}
if ($output) { $r->print(''); }
}
+# Re-adjust total points if force total
+ if ($categories{$id.'_totaltype'} eq 'typein') {
+ $totalpossible=1.*$categories{$id.'_total'};
+ }
+
if ($output) {
$r->print('');
if ($cangrade) { $r->print('
'.&new_calc_rule_form($id)); }
$r->print('
'.&mt('Calculated points: [_1]/[_2]',$totalcorrect,$totalpossible).'
'); $r->print(''); } - +# +# Prepare for export +# # Weight + my $weight=$categories{$id.'_weight'}; + unless (1.*$weight>0) { $weight=0; } if ($cangrade) { if ($output) { $r->print(''); + if ($type eq 'percent') { + my $perc='---'; + if ($totalpossible) { + $perc=100.*$totalcorrect/$totalpossible; } + $r->print(&mt('[_1] percent',$perc)); + } else { + $r->print(&mt('[_1]/[_2] points',$totalcorrect,$totalpossible)); } + $r->print('
'); } if ($output) { $r->print('