[LON-CAPA-cvs] cvs: loncom /interface lonquickgrades.pm
www
www@source.lon-capa.org
Sat, 28 May 2011 16:55:49 -0000
www Sat May 28 16:55:49 2011 EDT
Modified files:
/loncom/interface lonquickgrades.pm
Log:
Exporing category scores one level up
Index: loncom/interface/lonquickgrades.pm
diff -u loncom/interface/lonquickgrades.pm:1.94 loncom/interface/lonquickgrades.pm:1.95
--- loncom/interface/lonquickgrades.pm:1.94 Fri May 27 19:32:10 2011
+++ loncom/interface/lonquickgrades.pm Sat May 28 16:55:49 2011
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Quick Student Grades Display
#
-# $Id: lonquickgrades.pm,v 1.94 2011/05/27 19:32:10 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 @@
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_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',
@@ -766,40 +765,51 @@
$r->print('<p>'.&mt('Calculated points: [_1]/[_2]',$totalcorrect,$totalpossible).'</p>');
$r->print('</td>');
}
-
+#
+# Prepare for export
+#
# Weight
+ my $weight=$categories{$id.'_weight'};
+ unless (1.*$weight>0) { $weight=0; }
if ($cangrade) {
if ($output) {
$r->print('<td>'.
'<input type="text" size="4" name="weight_'.$id.
- '" value="'.&Apache::lonhtmlcommon::entity_encode($categories{$id.'_weight'}).'" /></td>');
+ '" value="'.&Apache::lonhtmlcommon::entity_encode($weight).'" /></td>');
}
} else {
if ($output) {
- $r->print('<td>'.$categories{$id.'_weight'}.'</td>');
+ $r->print('<td>'.$weight.'</td>');
}
}
# Achieved
+ my $type=$categories{$id.'_displayachieved'};
+ unless (($type eq 'percent') || ($type eq 'points')) { $type='points'; }
if ($output) { $r->print('<td>'); }
if ($cangrade) {
if ($output) {
$r->print('<select name="displayachieved_'.$id.'">'.
- '<option value="percent"'.($categories{$id.'_displayachieved'} eq 'percent'?' selected="selected"':'').'>'.&mt('percent').'</option>'.
- '<option value="points"'.($categories{$id.'_displayachieved'} eq 'points'?' selected="selected"':'').'>'.&mt('points').'</option>'.
+ '<option value="percent"'.($type eq 'percent'?' selected="selected"':'').'>'.&mt('percent').'</option>'.
+ '<option value="points"'.($type eq 'points'?' selected="selected"':'').'>'.&mt('points').'</option>'.
'</select>');
}
- } else {
- if ($output) {
- if ($categories{$id.'_displayachieved'} eq 'percent') {
- $r->print(&mt('percent'));
- } else {
- $r->print(&mt('points'));
+ }
+ if ($output) {
+ $r->print('<p>');
+ 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('</p>');
}
if ($output) { $r->print('</td>'); }
- return ($value,$weight);
+ return ($totalcorrect,$totalpossible,$type,$weight);
}
#