--- loncom/interface/lonquickgrades.pm 2011/02/20 20:57:46 1.67 +++ 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.67 2011/02/20 20:57:46 www Exp $ +# $Id: lonquickgrades.pm,v 1.69 2011/02/20 22:48:26 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -374,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").""); @@ -386,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"); @@ -429,7 +429,7 @@ sub outputCategories { # Process the changes %categories=&process_category_edits($r,$cangrade,%categories); # Actually store -# &Apache::lonnet::logthis("Storing ".$categories{'order'}); + &Apache::lonnet::logthis("Storing ".$categories{'order'}); &Apache::lonnet::put('grading_categories',\%categories,$cdom,$cnum); } # new categories loaded now @@ -455,11 +455,16 @@ 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); - } -# -# Business logic here -# + %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; } @@ -543,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); @@ -585,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 # @@ -636,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; }