--- loncom/interface/lonquickgrades.pm 2011/02/20 21:56:25 1.68 +++ loncom/interface/lonquickgrades.pm 2011/02/20 23:57:35 1.71 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Quick Student Grades Display # -# $Id: lonquickgrades.pm,v 1.68 2011/02/20 21:56:25 www Exp $ +# $Id: lonquickgrades.pm,v 1.71 2011/02/20 23:57:35 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -455,15 +455,18 @@ sub process_category_edits { unless ($cangrade) { return %categories; } my $cmd=$env{'form.cmd'}; if ($cmd eq 'createnewcat') { - %categories=&make_new_category($r,$cangrade,undef,%categories); + %categories=&make_new_category($r,$cangrade,undef,%categories); + } elsif ($cmd=~/^delcat\_(.+)$/) { + %categories=&del_category($1,$cangrade,%categories); + } else { +# Simply store the rest of the stuff + foreach my $id (split(/\,/,$categories{'order'})) { + %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); +# More changes here + } } - if ($cmd=~/^delcat\_(.+)$/) { - my $id=$1; - %categories=&del_category($id,$cangrade,%categories); - } -# -# Business logic here -# return %categories; } @@ -503,8 +506,8 @@ sub output_category_table_header { $r->print(''.&mt('Category').''. ''.&mt('Contents').''. ''.&mt('Calculation').''. - ''.&mt('Weight').''. - ''.&mt('Percent Overall').''); + ''.&mt('Total Points').''. + ''.&mt('Relative Weight').''); $r->print(&Apache::loncommon::end_data_table_header_row()); } @@ -548,9 +551,46 @@ ENDMOVE } $r->print("\n\n\n"); $r->print(''.&mt('Delete').''); - + $r->print(''); + } else { + $r->print(''.$categories{$id.'_name'}.''); + } +# Content +# FIXME: just placeholders + if ($cangrade) { + $r->print("Content Edit"); + } else { + $r->print("Content"); } - $r->print(&Apache::loncommon::end_data_table_row()."\n"); +# Calculation +# FIXME: just placeholders + if ($cangrade) { + $r->print("Calculation Edit"); + } else { + $r->print("Calculation"); + } +# Total + if ($cangrade) { + $r->print(''. + ''. + ''); + } else { + $r->print(''.($categories{$id.'_totaltype'} eq 'default'?&mt('default'):$categories{$id.'_total'}).''); + } +# Weight + if ($cangrade) { + $r->print(''. + ''); + } else { + $r->print(''.$categories{$id.'_weight'}.''); + } + return ($value,$weight); } @@ -586,6 +626,8 @@ sub make_new_category { if (defined($ordernum)) { %categories=&move_category($id,$cangrade,$ordernum,%categories); } + $categories{$id.'_weight'}=0; + $categories{$id.'_totaltype'}='default'; return %categories; } @@ -657,12 +699,41 @@ sub current_pos_category { # Set name of a category # sub set_category_name { - my ($canedit,$id,$name,%categories)=@_; - unless ($canedit) { return %categories; } + my ($cangrade,$id,$name,%categories)=@_; + unless ($cangrade) { return %categories; } $categories{$id.'_name'}=$name; return %categories; } +# +# Set total of a category +# +sub set_category_total { + my ($cangrade,$id,$totaltype,$total,%categories)=@_; + unless ($cangrade) { return %categories; } + if (($categories{$id.'_total'} eq '') && ($total=~/\d/)) { + $totaltype='typein'; + } + $categories{$id.'_totaltype'}=$totaltype; + if ($totaltype eq 'default') { + $categories{$id.'_total'}=''; + } else { + $total=~s/\D//gs; + unless ($total) { $total=0; } + $categories{$id.'_total'}=$total; + } + return %categories; +} + +sub set_category_weight { + my ($cangrade,$id,$weight,%categories)=@_; + unless ($cangrade) { return %categories; } + $weight=~s/\D//gs; + unless ($weight) { $weight=0; } + $categories{$id.'_weight'}=$weight; + return %categories; +} + # # === end category-related #