--- loncom/interface/lonparmset.pm 2005/06/06 02:25:09 1.211 +++ loncom/interface/lonparmset.pm 2005/06/06 15:13:46 1.212 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.211 2005/06/06 02:25:09 www Exp $ +# $Id: lonparmset.pm,v 1.212 2005/06/06 15:13:46 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -927,43 +927,25 @@ sub levelmenu { sub sectionmenu { my ($r,$selectedsections)=@_; + my %sectionhash=(); - my ($classlist,$field_names) = - &Apache::loncoursedata::get_classlist( - $env{'request.course.id'}, - $env{'course.'.$env{'request.course.id'}.'.domain'}, - $env{'course.'.$env{'request.course.id'}.'.num'}); - my %Sections=(); - while (my ($student,$student_data) = each (%$classlist)) { - my $studenthash = (); - for (my $i=0; $i< scalar(@$field_names);$i++) { - my $field = $field_names->[$i]; - # Store the data - $studenthash->{$field}=$student_data->[$i]; - } - my $section = $studenthash->{'section'}; - if (! defined($section) || $section =~/^\s*$/ || $section == -1) { - $studenthash->{'section'} = 'none'; - $section = $studenthash->{'section'}; - } - $Sections{$section}++; - } - my @Sections = sort {$a cmp $b} keys(%Sections); - unshift(@Sections,'all'); - - $r->print(''); + foreach my $s ('all',sort keys %sectionhash) { + $r->print(' \n"); + } + $r->print("\n"); } - $r->print("\n"); } sub keysplit { @@ -1212,7 +1194,7 @@ sub assessparms { } else { my ($map,$id,$resource)=&Apache::lonnet::decode_symb($pssymb); $r->print(&mt('Specific Resource').": ".$resource. - ''); + '
'); } &usermenu($r,$uname,$id,$udom,$csec); @@ -1967,9 +1949,12 @@ sub storedata { } if ($cmd eq 'set') { my $data=$env{$_}; - if ($$olddata{$thiskey} ne $data) { + my $typeof=$env{'form.typeof_'.$thiskey}; + if ($$olddata{$thiskey} ne $data) { if ($tuname) { - if (&Apache::lonnet::put('resourcedata',{$tkey=>$data},$tudom,$tuname) eq 'ok') { + if (&Apache::lonnet::put('resourcedata',{$tkey=>$data, + $tkey.'.type' => $typeof}, + $tudom,$tuname) eq 'ok') { $r->print('
'.&mt('Stored modified parameter for').' '. &Apache::loncommon::plainname($tuname,$tudom)); } else { @@ -1979,7 +1964,8 @@ sub storedata { &Apache::lonnet::devalidateuserresdata($tuname,$tudom); } else { $newdata{$thiskey}=$data; - } + $newdata{$thiskey.'.type'}=$typeof; + } } } elsif ($cmd eq 'del') { if ($tuname) { @@ -1995,9 +1981,12 @@ sub storedata { } } elsif ($cmd eq 'datepointer') { my $data=&Apache::lonhtmlcommon::get_date_from_form($env{$_}); + my $typeof=$env{'form.typeof_'.$thiskey}; if (defined($data) and $$olddata{$thiskey} ne $data) { if ($tuname) { - if (&Apache::lonnet::put('resourcedata',{$tkey=>$data},$tudom,$tuname) eq 'ok') { + if (&Apache::lonnet::put('resourcedata',{$tkey=>$data, + $tkey.'.type' => $typeof}, + $tudom,$tuname) eq 'ok') { $r->print('
'.&mt('Stored modified date for').' '.&Apache::loncommon::plainname($tuname,$tudom)); } else { $r->print('

'. @@ -2005,7 +1994,8 @@ sub storedata { } &Apache::lonnet::devalidateuserresdata($tuname,$tudom); } else { - $newdata{$thiskey}=$data; + $newdata{$thiskey}=$data; + $newdata{$thiskey.'.type'}=$typeof; } } } @@ -2026,7 +2016,7 @@ sub storedata { } if ($putentries) { if (&Apache::lonnet::put('resourcedata',\%newdata,$dom,$crs) eq 'ok') { - $r->print('

'.&mt('Stored [_1] parameter(s)

',$putentries)); + $r->print('

'.&mt('Stored [_1] parameter(s)',$putentries/2).'

'); } else { $r->print('

'. &mt('Error storing parameters').'

'); @@ -2201,8 +2191,8 @@ ENDOVER &partmenu($r,\%allparts,\@psprt); $r->print(''); §ionmenu($r,\@selected_sections); - $r->print(''); - + $r->print(''. + '

'); # Build the list data hash from the specified parms @@ -2212,35 +2202,40 @@ ENDOVER foreach my $cat (@pscat) { foreach my $section (@selected_sections) { foreach my $part (@psprt) { - my $newparmkey=$env{'request.course.id'}; + my $rootparmkey=$env{'request.course.id'}; if (($section ne 'all') && ($section ne 'none') && ($section)) { - $newparmkey.='.['.$section.']'; + $rootparmkey.='.['.$section.']'; } if ($parmlev eq 'general') { # course-level parameter + my $newparmkey=$rootparmkey.'.'.$part.'.'.$cat; + $$listdata{$newparmkey}=1; + $$listdata{$newparmkey.'.type'}=$defkeytype{$cat}; } elsif ($parmlev eq 'map') { - foreach my $map (keys %allmaps) { - if (($pschp ne 'all') && ($pschp ne $map)) { next; } - $newparmkey.='.'.$allmaps{$map}.'.'.$part.'.'.$cat; +# map-level parameter + foreach my $mapid (keys %allmaps) { + if (($pschp ne 'all') && ($pschp ne $mapid)) { next; } + my $newparmkey=$rootparmkey.'.'.$allmaps{$mapid}.'___(all).'.$part.'.'.$cat; $$listdata{$newparmkey}=1; $$listdata{$newparmkey.'.type'}=$defkeytype{$cat}; } -# map-level parameter } else { # resource-level parameter - + foreach my $rid (@ids) { + my ($map,$resid,$url)=&Apache::lonnet::decode_symb($symbp{$rid}); + if (($pschp ne 'all') && ($allmaps{$pschp} ne $map)) { next; } + my $newparmkey=$rootparmkey.'.'.$symbp{$rid}.'.'.$part.'.'.$cat; + $$listdata{$newparmkey}=1; + $$listdata{$newparmkey.'.type'}=$defkeytype{$cat}; + } } } } } + if (($env{'form.store'}) || ($env{'form.dis'})) { - - $r->print(join("\n
",keys %{$listdata})); - - if ($env{'form.dis'}) { - - &storedata($r,$crs,$dom); + if ($env{'form.store'}) { &storedata($r,$crs,$dom); } # Read modified data @@ -2251,7 +2246,8 @@ ENDOVER &listdata($r,$resourcedata,$listdata); } $r->print(&tableend(). - '

'); + ((($env{'form.store'}) || ($env{'form.dis'}))?'

':''). + ''); } sub overview {