--- loncom/interface/lonquickgrades.pm 2011/02/07 19:16:34 1.66 +++ loncom/interface/lonquickgrades.pm 2011/02/20 22:48:26 1.69 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Quick Student Grades Display # -# $Id: lonquickgrades.pm,v 1.66 2011/02/07 19:16:34 www Exp $ +# $Id: lonquickgrades.pm,v 1.69 2011/02/20 22:48:26 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -173,8 +173,6 @@ sub getData { my ($showPoints,$uname,$udom)=@_; - &Apache::lonnet::logthis("About to call with $uname $udom"); - # Create the nav map my $navmap = Apache::lonnavmaps::navmap->new($uname,$udom); @@ -376,7 +374,7 @@ sub outputTable { # If there were any problems at the top level, print an extra "catchall" if ($topLevelParts > 0) { my $ratio = $topLevelRight / $topLevelParts; - my $color = mixColors(\@start, \@end, $ratio); + my $color = &mixColors(\@start, \@end, $ratio); $r->print(&Apache::loncommon::start_data_table_row() .''); $r->print(&mt("Problems Not Contained In A Folder").""); @@ -388,7 +386,7 @@ sub outputTable { # show totals (if applicable), close table # if ($showPoints) { - my $maxHelpLink = Apache::loncommon::help_open_topic("Quick_Grades_Possibly_Correct"); + my $maxHelpLink = &Apache::loncommon::help_open_topic("Quick_Grades_Possibly_Correct"); $title = $showPoints ? "Points" : "Parts Done"; my $totaltitle = $showPoints ? &mt("Awarded Total Points") : &mt("Total Parts Done"); @@ -431,6 +429,7 @@ sub outputCategories { # Process the changes %categories=&process_category_edits($r,$cangrade,%categories); # Actually store + &Apache::lonnet::logthis("Storing ".$categories{'order'}); &Apache::lonnet::put('grading_categories',\%categories,$cdom,$cnum); } # new categories loaded now @@ -454,9 +453,18 @@ sub outputCategories { sub process_category_edits { my ($r,$cangrade,%categories)=@_; unless ($cangrade) { return %categories; } -# -# Business logic here -# + my $cmd=$env{'form.cmd'}; + if ($cmd eq 'createnewcat') { + %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); +# More changes here + } + } return %categories; } @@ -467,21 +475,21 @@ sub process_category_edits { sub output_category_table { my ($r,$cangrade,$navmaps,%categories)=@_; my $sum=0; + my $total=0; $r->print(&Apache::loncommon::start_data_table()); # &output_category_table_header($r,$cangrade); # my @order=split(/\,/,$categories{'order'}); # -# FIXME: Debug only - @order=('3131_4123_42124','4124_34231_3412'); -# 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); + $sum+=$value*$weight; + $total+=$weight; } # - &bottom_line_category($r,$cangrade); + &bottom_line_category($r,$cangrade,$sum,$total); # $r->print(&Apache::loncommon::end_data_table()); return $sum; @@ -540,7 +548,11 @@ ENDMOVE } } $r->print("\n\n\n"); - + $r->print(''.&mt('Delete').''); + $r->print(''); + } else { + $r->print(''.$categories{$id.'_name'}.''); } $r->print(&Apache::loncommon::end_data_table_row()."\n"); return ($value,$weight); @@ -551,7 +563,12 @@ ENDMOVE # sub bottom_line_category { - my ($r,$cangrade)=@_; + my ($r,$cangrade,$sum,$total)=@_; + $r->print(&Apache::loncommon::start_data_table_row()); + if ($cangrade) { + $r->print(''.&mt('Create New Category').''); + } + $r->print(''.&mt('Current:').$sum.'
'.&mt('Total:').$total.'
'); } # @@ -577,6 +594,22 @@ sub make_new_category { } # +# Delete category +# + +sub del_category { + my ($id,$cangrade,%categories)=@_; + my @neworder=(); + foreach my $currentid (split(/\,/,$categories{'order'})) { + unless ($currentid eq $id) { + push(@neworder,$currentid); + } + } + $categories{'order'}=join(',',@neworder); + return %categories; +} + +# # Move a category to a desired position n the display order # @@ -628,8 +661,8 @@ 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; }