version 1.78, 2011/03/25 01:34:49
|
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 497 sub process_category_edits {
|
Line 499 sub process_category_edits {
|
%categories=&del_category_content($1,$cangrade,$2,%categories); |
%categories=&del_category_content($1,$cangrade,$2,%categories); |
} elsif ($cmd=~/^newrule\_(.+)$/) { |
} elsif ($cmd=~/^newrule\_(.+)$/) { |
%categories=&add_calculation_rule($1,$cangrade,':',%categories); |
%categories=&add_calculation_rule($1,$cangrade,':',%categories); |
|
} elsif ($cmd=~/^delrule\_(.+)\_\_\_\_\_\_(.*)$/) { |
|
%categories=&del_calculation_rule($1,$cangrade,$2,%categories); |
} |
} |
# Move to a new position |
# Move to a new position |
my $moveid=$env{'form.storemove'}; |
my $moveid=$env{'form.storemove'}; |
Line 615 ENDMOVE
|
Line 619 ENDMOVE
|
my ($code,$value)=split(/\:/,$calcrule); |
my ($code,$value)=split(/\:/,$calcrule); |
$r->print(&pretty_prt_rule($cangrade,$id,$code,$value)); |
$r->print(&pretty_prt_rule($cangrade,$id,$code,$value)); |
if ($cangrade) { |
if ($cangrade) { |
$r->print(' <a href="javascript:storecmd(\'delcalc_'.$id.'______'.$code.'\');">'.&mt('Delete').'</a>'); |
$r->print(' <a href="javascript:storecmd(\'delrule_'.$id.'______'.$code.'\');">'.&mt('Delete').'</a>'); |
} |
} |
$r->print('</li>'); |
$r->print('</li>'); |
} |
} |
Line 690 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 749 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 |
|
|
# |
# |