--- loncom/interface/lonquickgrades.pm 2011/03/26 16:09:33 1.80
+++ loncom/interface/lonquickgrades.pm 2011/05/22 21:53:52 1.88
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Quick Student Grades Display
#
-# $Id: lonquickgrades.pm,v 1.80 2011/03/26 16:09:33 www Exp $
+# $Id: lonquickgrades.pm,v 1.88 2011/05/22 21:53:52 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -62,7 +62,8 @@ sub real_handler {
$r->send_http_header;
my $showPoints =
- $env{'course.'.$env{'request.course.id'}.'.grading'} eq 'standard';
+ (($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'standard')
+ || ($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'categories'));
my $notshowSPRSlink =
(($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'external')
|| ($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'externalnototals'));
@@ -266,8 +267,12 @@ sub getData {
$totalRight += $score;
$partsCount += $curRes->weight($part);
+ $curRes->{DATA}->{PROB_SCORE} += $score;
+ $curRes->{DATA}->{PROB_WEIGHT} += $curRes->weight($part);
+
if ($curRes->opendate($part) < $now) {
$totalPossible += $curRes->weight($part);
+ $curRes->{DATA}->{PROB_POSSIBLE} += $curRes->weight($part);
}
$totalParts += $curRes->weight($part);
} else {
@@ -459,11 +464,50 @@ sub outputCategories {
&output_category_table($r,$cangrade,$navmap,%categories);
#
if ($cangrade) {
- $r->print(''.
+ $r->print(&Apache::loncommon::resourcebrowser_javascript().
+ ''.
''.
+ ''.
''.
'');
}
+#
+# Debug
+#
+# my %data=&dumpdata($navmap);
+# foreach (keys(%data)) {
+# $r->print("\n
".$_.'='.$data{$_});
+# }
+}
+
+#
+# Get data for all symbs
+#
+
+sub dumpdata {
+ my ($navmap)=@_;
+ my %returndata=();
+
+# Run through the map and get all data
+
+ my $iterator = $navmap->getIterator(undef, undef, undef, 1);
+ my $depth = 1;
+ $iterator->next(); # ignore first BEGIN_MAP
+ my $curRes = $iterator->next();
+
+ while ($depth > 0) {
+ if ($curRes == $iterator->BEGIN_MAP()) {$depth++;}
+ if ($curRes == $iterator->END_MAP()) { $depth--; }
+ if (ref($curRes)) {
+ if ($curRes->is_map()) {
+ $returndata{$curRes->symb()}='folder:'.$curRes->{DATA}->{CHILD_PARTS}.':'.$curRes->{DATA}->{CHILD_ATTEMPTED}.':'.$curRes->{DATA}->{CHILD_CORRECT};
+ } else {
+ $returndata{$curRes->symb()}='res:'.$curRes->{DATA}->{PROB_WEIGHT}.':'.$curRes->{DATA}->{PROB_POSSIBLE}.':'.$curRes->{DATA}->{PROB_SCORE};
+ }
+ }
+ $curRes = $iterator->next();
+ }
+ return %returndata;
}
#
@@ -479,6 +523,7 @@ sub process_category_edits {
%categories=&set_category_name($cangrade,$id,$env{'form.name_'.$id},%categories);
%categories=&set_category_total($cangrade,$id,$env{'form.totaltype_'.$id},$env{'form.total_'.$id},%categories);
%categories=&set_category_weight($cangrade,$id,$env{'form.weight_'.$id},%categories);
+ %categories=&set_category_displayachieved($cangrade,$id,$env{'form.displayachieved_'.$id},%categories);
# Set values for category rules (before names may change)
%categories=&set_category_rules($cangrade,$id,%categories);
}
@@ -494,7 +539,7 @@ sub process_category_edits {
} elsif ($cmd=~/^delcat\_(.+)$/) {
%categories=&del_category($1,$cangrade,%categories);
} elsif ($cmd=~/^addcont\_(.+)$/) {
- %categories=&add_category_content($1,$cangrade,$env{'form.addcont_'.$1.'_symb'},%categories);
+ %categories=&add_category_content($1,$cangrade,$env{'form.resourcesymb'},%categories);
} elsif ($cmd=~/^delcont\_(.+)\_\_\_\_\_\_(.+)$/) {
%categories=&del_category_content($1,$cangrade,$2,%categories);
} elsif ($cmd=~/^newrule\_(.+)$/) {
@@ -524,9 +569,10 @@ sub output_category_table {
#
my @order=split(/\,/,$categories{'order'});
#
+ 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,%categories);
+ my ($value,$weight)=&output_and_calc_category($r,$cangrade,$navmaps,$order[$i],$i,$maxpos,\%performance,%categories);
$sum+=$value*$weight;
$total+=$weight;
}
@@ -545,9 +591,10 @@ sub output_category_table_header {
}
$r->print('