version 1.79, 2011/03/25 22:06:34
|
version 1.80, 2011/03/26 16:09:33
|
Line 475 sub process_category_edits {
|
Line 475 sub process_category_edits {
|
unless ($cangrade) { return %categories; } |
unless ($cangrade) { return %categories; } |
# First store everything |
# First store everything |
foreach my $id (split(/\,/,$categories{'order'})) { |
foreach my $id (split(/\,/,$categories{'order'})) { |
|
# Set names, types, and weight (there is only one of each per category) |
%categories=&set_category_name($cangrade,$id,$env{'form.name_'.$id},%categories); |
%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_total($cangrade,$id,$env{'form.totaltype_'.$id},$env{'form.total_'.$id},%categories); |
%categories=&set_category_weight($cangrade,$id,$env{'form.weight_'.$id},%categories); |
%categories=&set_category_weight($cangrade,$id,$env{'form.weight_'.$id},%categories); |
# More changes here |
# Set values for category rules (before names may change) |
|
%categories=&set_category_rules($cangrade,$id,%categories); |
} |
} |
|
|
# Now deal with commands |
# Now deal with commands |
Line 692 sub make_new_category {
|
Line 694 sub make_new_category {
|
|
|
# === Calculation Rule Editing |
# === Calculation Rule Editing |
|
|
sub pretty_prt_rule { |
sub category_rule_codes { |
my ($cangrade,$id,$code,$value)=@_; |
return &Apache::lonlocal::texthash( |
my $cid=$id.'_'.$code; |
|
my %lt=&Apache::lonlocal::texthash( |
|
'droplow' => 'Drop N lowest grade assignments', |
'droplow' => 'Drop N lowest grade assignments', |
'drophigh' => 'Drop N highest grade assignments', |
'drophigh' => 'Drop N highest grade assignments', |
'capabove' => 'Cap percentage above N percent', |
'capabove' => 'Cap percentage above N percent', |
'capbelow' => 'Cap percentage below N percent'); |
'capbelow' => 'Cap percentage below N percent'); |
|
} |
|
|
|
sub pretty_prt_rule { |
|
my ($cangrade,$id,$code,$value)=@_; |
|
my $cid=$id.'_'.$code; |
|
my %lt=&category_rule_codes(); |
my $ret='<span class="LC_nobreak">'; |
my $ret='<span class="LC_nobreak">'; |
if ($cangrade) { |
if ($cangrade) { |
$ret.='<select name="sel_'.$cid.'">'; |
$ret.='<select name="sel_'.$cid.'">'; |
foreach my $calc (''=>'',sort(keys(%lt))) { |
foreach my $calc (''=>'',sort(keys(%lt))) { |
$ret.='<option value="'.$calc.'"'.($calc eq $code?' selected="selected"':'').' />'.$lt{$calc}.'</input>'; |
$ret.='<option value="'.$calc.'"'.($calc eq $code?' selected="selected"':'').' />'.$lt{$calc}.'</input>'; |
} |
} |
$ret.='</select> N=<input type="text" size="5" name="val_'.$cid.'" /></span>'; |
$ret.='</select> N=<input type="text" size="5" name="val_'.$cid.'" value="'.$value.'" /></span>'; |
} else { |
} else { |
$ret.=$lt{$code}.'; N='.$value; |
$ret.=$lt{$code}.'; N='.$value; |
} |
} |
Line 751 sub del_calculation_rule {
|
Line 757 sub del_calculation_rule {
|
return %categories; |
return %categories; |
} |
} |
|
|
|
sub set_category_rules { |
|
my ($cangrade,$id,%categories)=@_; |
|
unless ($cangrade) { return %categories; } |
|
my %lt=&category_rule_codes(); |
|
my @newrules=(); |
|
foreach my $code ('',(keys(%lt))) { |
|
if ($env{'form.sel_'.$id.'_'.$code}) { |
|
push(@newrules,$env{'form.sel_'.$id.'_'.$code}.':'.$env{'form.val_'.$id.'_'.$code}); |
|
} |
|
} |
|
$categories{$id.'_calculations'}=join(',',sort(@newrules)); |
|
return %categories; |
|
} |
|
|
|
|
# === Category Editing |
# === Category Editing |
|
|
# |
# |