--- loncom/interface/lonparmset.pm 2008/12/03 21:20:57 1.418
+++ loncom/interface/lonparmset.pm 2009/05/17 01:02:10 1.450
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.418 2008/12/03 21:20:57 schafran Exp $
+# $Id: lonparmset.pm,v 1.450 2009/05/17 01:02:10 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -214,19 +214,6 @@ Variables used (guessed by Jeremy):
When storing information, store as part 0
When requesting information, request from full part
-=item crsenv()
-
-Show and set course data and parameters. This is a large routine that should
-be simplified and shortened... someday.
-
-Inputs: $r
-
-Returns: nothing
-
-=item can_modify_catsettings()
-
-=item assign_course_categories()
-
=item tablestart()
=item tableend()
@@ -322,7 +309,7 @@ Set portfolio metadata
=item handler() :
-Main handler. Calls &assessparms and &crsenv subroutines.
+Main handler. Calls &assessparms subroutine.
=back
@@ -366,7 +353,7 @@ sub parmval_by_symb {
my $result='';
my @outpar=();
# ----------------------------------------------------- Cascading lookup scheme
- my $map=(&Apache::lonnet::decode_symb($symb))[0];
+ my $map=(&Apache::lonnet::decode_symb($symb))[0];
$map = &Apache::lonnet::deversion($map);
my $symbparm=$symb.'.'.$what;
@@ -468,7 +455,7 @@ sub parmval_by_symb {
# --- Caches local to lonparmset
-
+
sub reset_caches {
&resetparmhash();
&resetsymbcache();
@@ -482,7 +469,7 @@ sub reset_caches {
undef($parmhashid);
undef(%parmhash);
}
-
+
sub cacheparmhash {
if ($parmhashid eq $env{'request.course.fn'}) { return; }
my %parmhashfile;
@@ -493,7 +480,7 @@ sub reset_caches {
$parmhashid=$env{'request.course.fn'};
}
}
-
+
sub parmhash {
my ($id) = @_;
&cacheparmhash();
@@ -501,14 +488,14 @@ sub reset_caches {
}
}
-{
+{
my $symbsid;
my %symbs;
sub resetsymbcache {
undef($symbsid);
undef(%symbs);
}
-
+
sub symbcache {
my $id=shift;
if ($symbsid ne $env{'request.course.id'}) {
@@ -529,14 +516,14 @@ sub reset_caches {
}
}
-{
+{
my $rulesid;
my %rules;
sub resetrulescache {
undef($rulesid);
undef(%rules);
}
-
+
sub rulescache {
my $id=shift;
if ($rulesid ne $env{'request.course.id'}
@@ -683,7 +670,7 @@ sub storeparm_by_symb_inner {
my ($symb,$spnam,$snum,$nval,$ntype,$uname,$udom,$csec,$cgroup)=@_;
# ---------------------------------------------------------- Construct prefixes
$spnam=~s/\_([^\_]+)$/\.$1/;
- my $map=(&Apache::lonnet::decode_symb($symb))[0];
+ my $map=(&Apache::lonnet::decode_symb($symb))[0];
$map = &Apache::lonnet::deversion($map);
my $symbparm=$symb.'.'.$spnam;
@@ -696,11 +683,11 @@ sub storeparm_by_symb_inner {
my $seclevel=$env{'request.course.id'}.'.['.$csec.'].'.$spnam;
my $seclevelr=$env{'request.course.id'}.'.['.$csec.'].'.$symbparm;
my $seclevelm=$env{'request.course.id'}.'.['.$csec.'].'.$mapparm;
-
+
my $courselevel=$env{'request.course.id'}.'.'.$spnam;
my $courselevelr=$env{'request.course.id'}.'.'.$symbparm;
my $courselevelm=$env{'request.course.id'}.'.'.$mapparm;
-
+
my $storeunder='';
if (($snum==14) || ($snum==3)) { $storeunder=$courselevel; }
if (($snum==13) || ($snum==2)) { $storeunder=$courselevelm; }
@@ -712,7 +699,7 @@ sub storeparm_by_symb_inner {
if ($snum==5) { $storeunder=$grplevelm; }
if ($snum==4) { $storeunder=$grplevelr; }
-
+
my $delete;
if ($nval eq '') { $delete=1;}
my %storecontent = ($storeunder => $nval,
@@ -769,7 +756,7 @@ sub storeparm_by_symb_inner {
}
&Apache::lonnet::devalidateuserresdata($uname,$udom);
}
-
+
if ($reply=~/^error\:(.*)/) {
return "Write Error: $1";
}
@@ -848,12 +835,13 @@ sub plink {
my ($hour,$min,$sec,$val)=&preset_defaults($parmname);
unless (defined($winvalue)) { $winvalue=$val; }
my $valout = &valout($value,$type,1);
+ my $unencmarker = $marker;
foreach my $item (\$type, \$dis, \$winvalue, \$marker, \$return, \$call,
\$hour, \$min, \$sec) {
$$item = &HTML::Entities::encode($$item,'"<>&');
$$item =~ s/\'/\\\'/g;
}
- return '
');
+
my $thismarker=$which;
$thismarker=~s/^parameter\_//;
my $mprefix=$rid.'&'.$thismarker.'&';
@@ -994,9 +982,9 @@ sub print_row {
} elsif ($cgroup) {
&print_td($r,6,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
} elsif ($csec) {
- &print_td($r,9,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
+ &print_td($r,9,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
} else {
- &print_td($r,14,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
+ &print_td($r,14,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
}
} elsif ($parmlev eq 'map') {
@@ -1033,7 +1021,7 @@ sub print_row {
&print_td($r,12,'#FFDDDD',$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
&print_td($r,11,'#FFDDDD',$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
&print_td($r,10,$defbgone,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
-
+
if ($csec) {
&print_td($r,9,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
&print_td($r,8,$defbgtwo,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
@@ -1045,7 +1033,7 @@ sub print_row {
&print_td($r,5,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
&print_td($r,4,$defbgthree,$result,\@outpar,$mprefix,$_,\@typeoutpar,$display);
}
-
+
if ($uname) {
if ($othergrp) {
$r->print($othergrp);
@@ -1056,14 +1044,14 @@ sub print_row {
}
} # end of $parmlev if/else
- $r->print('
'.$effective_parm.'
');
+ $r->print('
'.$effective_parm.'
');
if ($parmlev eq 'full') {
my $sessionval=&Apache::lonnet::EXT('resource.'.$$part{$which}.
'.'.$$name{$which},$$symbp{$rid});
my $sessionvaltype=$typeoutpar[$result];
if (!defined($sessionvaltype)) { $sessionvaltype=$$defaulttype{$which}; }
- $r->print('
'.
+ $r->print('
'.
&valout($sessionval,$sessionvaltype).' '.
'
');
}
@@ -1073,14 +1061,22 @@ sub print_row {
sub print_td {
my ($r,$which,$defbg,$result,$outpar,$mprefix,$value,$typeoutpar,$display)=@_;
- $r->print('