--- 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 ':'); $foundkeys++; - if ($resourcedata{$thiskey.'.type'}=~/^date/) { + if ($$resourcedata{$thiskey.'.type'}=~/^date/) { my $jskey='key_'.$pointer; $pointer++; $r->print( &Apache::lonhtmlcommon::date_setter('overviewform', $jskey, - $resourcedata{$thiskey}). + $$resourcedata{$thiskey}). '' ); } else { $r->print( ''); + $$resourcedata{$thiskey}.'">'); } $r->print(''); } @@ -2149,7 +2175,11 @@ sub handler { return OK; } &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['action','state']); + ['action','state', + 'pres_marker', + 'pres_value', + 'pres_type', + 'udom','uname']); &Apache::lonhtmlcommon::clear_breadcrumbs();