--- loncom/interface/lonquickgrades.pm 2011/03/19 02:22:18 1.76
+++ loncom/interface/lonquickgrades.pm 2011/03/25 01:34:49 1.78
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Quick Student Grades Display
#
-# $Id: lonquickgrades.pm,v 1.76 2011/03/19 02:22:18 www Exp $
+# $Id: lonquickgrades.pm,v 1.78 2011/03/25 01:34:49 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -495,6 +495,8 @@ sub process_category_edits {
%categories=&add_category_content($1,$cangrade,$env{'form.addcont_'.$1.'_symb'},%categories);
} elsif ($cmd=~/^delcont\_(.+)\_\_\_\_\_\_(.+)$/) {
%categories=&del_category_content($1,$cangrade,$2,%categories);
+ } elsif ($cmd=~/^newrule\_(.+)$/) {
+ %categories=&add_calculation_rule($1,$cangrade,':',%categories);
}
# Move to a new position
my $moveid=$env{'form.storemove'};
@@ -610,16 +612,16 @@ ENDMOVE
$r->print('
');
foreach my $calcrule (split(/\,/,$categories{$id.'_calculations'})) {
$r->print('- ');
- $r->print(&pretty_prt_rule($calcrule));
+ my ($code,$value)=split(/\:/,$calcrule);
+ $r->print(&pretty_prt_rule($cangrade,$id,$code,$value));
if ($cangrade) {
- $r->print(' '.&mt('Delete').'');
+ $r->print(' '.&mt('Delete').'');
}
$r->print('
');
}
$r->print(' ');
if ($cangrade) {
- $r->print(' '.&mt('Add Calculation Rule').' '.
- &new_calc_rule_form('addcalc_'.$id.'_','this.form.cmd.value="addcalc_'.$id.'";this.form.submit();'));
+ $r->print(' '.&new_calc_rule_form($id));
}
$r->print(' | ');
@@ -689,12 +691,30 @@ sub make_new_category {
# === Calculation Rule Editing
sub pretty_prt_rule {
- my ($rule)=@_;
- return $rule;
+ my ($cangrade,$id,$code,$value)=@_;
+ my $cid=$id.'_'.$code;
+ my %lt=&Apache::lonlocal::texthash(
+ 'droplow' => 'Drop N lowest grade assignments',
+ 'drophigh' => 'Drop N highest grade assignments',
+ 'capabove' => 'Cap percentage above N percent',
+ 'capbelow' => 'Cap percentage below N percent');
+ my $ret='';
+ if ($cangrade) {
+ $ret.=' N=';
+ } else {
+ $ret.=$lt{$code}.'; N='.$value;
+ }
+ $ret.='';
+ return $ret;
}
sub new_calc_rule_form {
- return "New Rule";
+ my ($id)=@_;
+ return ''.&mt('New Calculation Rule').'';
}
#
@@ -721,7 +741,7 @@ sub del_calculation_rule {
unless ($cangrade) { return %categories; }
my @newcontent=();
foreach my $current (split(/\,/,$categories{$id.'_calculations'})) {
- unless ($current eq $delcontent) {
+ unless ($current=~/^\Q$delcontent\E\:/) {
push(@newcontent,$current);
}
}