--- loncom/interface/lonparmset.pm 2005/06/03 15:47:29 1.204
+++ loncom/interface/lonparmset.pm 2005/06/03 21:19:04 1.206
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.204 2005/06/03 15:47:29 www Exp $
+# $Id: lonparmset.pm,v 1.206 2005/06/03 21:19:04 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -635,11 +635,6 @@ sub print_row {
if ($parmlev eq 'full') {
my $sessionval=&Apache::lonnet::EXT('resource.'.$$part{$which}.
'.'.$$name{$which},$$symbp{$rid});
-
-# this doesn't seem to work, and I don't think is correct
-# my $sessionvaltype=&Apache::lonnet::EXT('resource.'.$$part{$which}.
-# '.'.$$name{$which}.'.type',$symbp{$rid});
-# this seems to work
my $sessionvaltype=$typeoutpar[$result];
if (!defined($sessionvaltype)) { $sessionvaltype=$$defaulttype{$which}; }
$r->print('
'.
@@ -939,10 +934,15 @@ sub assessparms {
# ---------------------------------------------------------- Anything to store?
if ($env{'form.pres_marker'}) {
- $message.=&storeparm(split(/\&/,$env{'form.pres_marker'}),
- $env{'form.pres_value'},
- $env{'form.pres_type'},
- $uname,$udom,$csec);
+ my @markers=split(/\&\&\&/,$env{'form.pres_marker'});
+ my @values=split(/\&\&\&/,$env{'form.pres_value'});
+ my @types=split(/\&\&\&/,$env{'form.pres_type'});
+ for (my $i=0;$i<=$#markers;$i++) {
+ $message.=&storeparm(split(/\&/,$markers[$i]),
+ $values[$i],
+ $types[$i],
+ $uname,$udom,$csec);
+ }
# ---------------------------------------------------------------- Done storing
$message.='
'.&mt('Changes can take up to 10 minutes before being active for all students.').&Apache::loncommon::help_open_topic('Caching').'
';
}
@@ -1877,6 +1877,7 @@ ENDOVER
$r->print('
'.
&mt('Error deleting parameters').'
');
}
+ &Apache::lonnet::devalidatecourseresdata($crs,$dom);
}
if ($putentries) {
if (&Apache::lonnet::put('resourcedata',\%newdata,$dom,$crs) eq 'ok') {
@@ -1885,22 +1886,47 @@ ENDOVER
$r->print('
'.
&mt('Error storing parameters').'
');
}
+ &Apache::lonnet::devalidatecourseresdata($crs,$dom);
}
-# Read and display
- my %resourcedata=&Apache::lonnet::dump('resourcedata',$dom,$crs);
+# Read coursedata
+ my $resourcedata=&Apache::lonnet::get_courseresdata($crs,$dom);
+# Read userdata
+
+ my $classlist=&Apache::loncoursedata::get_classlist();
+ foreach (keys %$classlist) {
+ # the following undefs are for 'domain', and 'username' respectively.
+ if ($_=~/^(\w+)\:(\w+)$/) {
+ my ($tuname,$tudom)=($1,$2);
+ my $useropt=&Apache::lonnet::get_userresdata($tuname,$tudom);
+ foreach my $userkey (keys %{$useropt}) {
+ if ($userkey=~/^$env{'request.course.id'}/) {
+ my $newkey=$userkey;
+ $newkey=~s/^($env{'request.course.id'}\.)/$1\[useropt\:$tuname\:$tudom\]\./;
+ $$resourcedata{$newkey}=$$useropt{$userkey};
+ }
+ }
+ }
+ }
+
my $oldsection='';
my $oldrealm='';
my $oldpart='';
my $pointer=0;
$tableopen=0;
my $foundkeys=0;
- foreach my $thiskey (sort keys %resourcedata) {
- if ($resourcedata{$thiskey.'.type'}) {
+ foreach my $thiskey (sort keys %{$resourcedata}) {
+ if ($$resourcedata{$thiskey.'.type'}) {
+ $r->print($thiskey);
my ($course,$middle,$part,$name)=
($thiskey=~/^(\w+)\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/);
my $section=&mt('All Students');
if ($middle=~/^\[(.*)\]\./) {
- $section=&mt('Group/Section').': '.$1;
+ my $issection=$1;
+ if ($issection=~/^useropt\:(\w+)\:(\w+)/) {
+ $section=&mt('User').": ".&Apache::loncommon::plainname($1,$2);
+ } else {
+ $section=&mt('Group/Section').': '.$issection;
+ }
$middle=~s/^\[(.*)\]\.//;
}
$middle=~s/\.$//;
@@ -1933,19 +1959,19 @@ ENDOVER
':