--- loncom/interface/lonquickgrades.pm 2011/05/03 23:51:19 1.84 +++ loncom/interface/lonquickgrades.pm 2011/05/24 23:44:33 1.91 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Quick Student Grades Display # -# $Id: lonquickgrades.pm,v 1.84 2011/05/03 23:51:19 www Exp $ +# $Id: lonquickgrades.pm,v 1.91 2011/05/24 23:44:33 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -467,6 +467,7 @@ sub outputCategories { $r->print(&Apache::loncommon::resourcebrowser_javascript(). ''. ''. + ''. ''. ''); } @@ -538,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\_(.+)$/) { @@ -568,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,1,%categories); $sum+=$value*$weight; $total+=$weight; } @@ -602,16 +604,16 @@ sub output_category_table_header { # sub output_and_calc_category { - my ($r,$cangrade,$navmaps,$id,$currentpos,$maxpos,%categories)=@_; + 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', 'dw' => 'Move Down'); - $r->print("\n".&Apache::loncommon::start_data_table_row()); + if ($output) { $r->print("\n".&Apache::loncommon::start_data_table_row()); } - if ($cangrade) { + if ($output && $cangrade) { $r->print(<
@@ -638,80 +640,128 @@ ENDMOVE $r->print(''.&mt('Delete').''); $r->print(''); - } else { + } elsif ($output) { $r->print(''.$categories{$id.'_name'}.''); } -# Content - $r->print(''); + $r->print('

'.&mt('Total raw points: [_1]/[_2]',$totalcorrect,$totalpossible).'

'); + if ($cangrade) { + $r->print('
'.&Apache::loncommon::selectresource_link('quickform','addcont_'.$id,&mt('Add Problem or Folder')).'
'); + } + $r->print(''); } - $r->print(''); - # Total + if ($output) { $r->print(''); } if ($cangrade) { - $r->print(''. + if ($output) { + $r->print( ''. ''); + '" value="'.&Apache::lonhtmlcommon::entity_encode($categories{$id.'_total'}).'" />'); + } } else { - $r->print(''.($categories{$id.'_totaltype'} eq 'default'?&mt('default'):$categories{$id.'_total'}).''); + if ($output) { + $r->print(''.($categories{$id.'_totaltype'} eq 'default'?&mt('default'):$categories{$id.'_total'})); + } + } +# Adjust total points + if ($categories{$id.'_totaltype'} eq 'typein') { + $totalpossible=1.*$categories{$id.'_total'}; + } + if ($output) { + $r->print('

'.&mt('Adjusted raw points: [_1]/[_2]',$totalcorrect,$totalpossible).'

'); } # Calculation - $r->print(''); + if ($cangrade) { - $r->print('
'.&new_calc_rule_form($id)); + if ($output) { $r->print('
'.&new_calc_rule_form($id)); } } - $r->print(''); + if ($output) { $r->print(''); } # Weight if ($cangrade) { - $r->print(''. + if ($output) { + $r->print(''. ''); + } } else { - $r->print(''.$categories{$id.'_weight'}.''); + if ($output) { + $r->print(''.$categories{$id.'_weight'}.''); + } } # Achieved - $r->print(''); + if ($output) { $r->print(''); } if ($cangrade) { - $r->print(''. ''. ''. ''); + } } else { - if ($categories{$id.'_displayachieved'} eq 'percent') { - $r->print(&mt('percent')); - } else { - $r->print(&mt('points')); + if ($output) { + if ($categories{$id.'_displayachieved'} eq 'percent') { + $r->print(&mt('percent')); + } else { + $r->print(&mt('points')); + } } } - $r->print(''); + if ($output) { $r->print(''); } return ($value,$weight); } @@ -759,8 +809,10 @@ sub make_new_category { sub category_rule_codes { return &Apache::lonlocal::texthash( - 'droplow' => 'Drop N lowest grade assignments', - 'drophigh' => 'Drop N highest grade assignments', + 'droplowperc' => 'Drop N lowest grade percentage problems/folders', + 'drophighperc' => 'Drop N highest grade percentage problems/folderss', + 'droplow' => 'Drop N lowest point problems/folders', + 'drophigh' => 'Drop N highest point problems/folders', 'capabove' => 'Cap percentage above N percent', 'capbelow' => 'Cap percentage below N percent'); } @@ -844,6 +896,7 @@ sub set_category_rules { sub add_category_content { my ($id,$cangrade,$newcontent,%categories)=@_; unless ($cangrade) { return %categories; } + &Apache::lonnet::logthis("In here $newcontent"); my %newcontent=($newcontent => 1); foreach my $current (split(/\,/,$categories{$id.'_content'})) { $newcontent{$current}=1;