--- loncom/interface/lonquickgrades.pm 2011/02/20 22:48:26 1.69 +++ 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.69 2011/02/20 22:48:26 www Exp $ +# $Id: lonquickgrades.pm,v 1.71 2011/02/20 23:57:35 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -462,6 +462,8 @@ sub process_category_edits { # 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 } } @@ -504,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()); } @@ -554,7 +556,41 @@ ENDMOVE } else { $r->print(''.$categories{$id.'_name'}.''); } - $r->print(&Apache::loncommon::end_data_table_row()."\n"); +# Content +# FIXME: just placeholders + if ($cangrade) { + $r->print("Content Edit"); + } else { + $r->print("Content"); + } +# 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); } @@ -590,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; } @@ -667,6 +705,35 @@ sub set_category_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 #