--- loncom/interface/lonparmset.pm 2002/10/03 22:31:58 1.72 +++ loncom/interface/lonparmset.pm 2003/03/20 18:03:14 1.85 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.72 2002/10/03 22:31:58 albertel Exp $ +# $Id: lonparmset.pm,v 1.85 2003/03/20 18:03:14 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -72,6 +72,8 @@ my %mapp; my %typep; my %keyp; +my %maptitles; + my $uname; my $udom; my $uhome; @@ -96,13 +98,13 @@ Returns: A list, the first item is the 11- resource default 10- map default 9 - General Course -8 - Map level in course +8 - Map or Folder level in course 7 - resource level in course 6 - General for section -5 - Map level for section +5 - Map or Folder level for section 4 - resource level in section 3 - General for specific student -2 - Map level for specific student +2 - Map or Folder level for specific student 1 - resource level for specific student =cut @@ -288,6 +290,10 @@ sub startpage { my $bodytag=&Apache::loncommon::bodytag('Set Course Parameters','', 'onUnload="pclose()"'); + my $chooseopt=&Apache::loncommon::select_dom_form($udom,'udom').' '. + &Apache::loncommon::selectstudent_link('parmform','uname','udom'); + my $selscript=&Apache::loncommon::studentbrowser_javascript(); + $r->print(< @@ -341,6 +347,7 @@ sub startpage { newWin.focus(); } +$selscript $bodytag
@@ -358,7 +365,7 @@ For User or ID at Domain - +$chooseopt @@ -544,6 +551,7 @@ sub extractResourceInformation { my $defp = shift; my $mapp = shift; my $symbp = shift; + my $maptitles=shift; foreach (keys %$bighash) { if ($_=~/^src\_(\d+)\.(\d+)$/) { @@ -584,6 +592,9 @@ sub extractResourceInformation { &Apache::lonnet::declutter($$bighash{'map_id_'.$mapid}); $$mapp{$mapid}=$$mapp{$id}; $$allmaps{$mapid}=$$mapp{$id}; + $$maptitles{$mapid}= + $$bighash{'title_'.$$bighash{'ids_'.&Apache::lonnet::clutter($$mapp{$id})}}; + $$maptitles{$$mapp{$id}}=$$maptitles{$mapid}; $$symbp{$id}=$$mapp{$id}. '___'.$resid.'___'. &Apache::lonnet::declutter($srcf); @@ -657,6 +668,7 @@ sub assessparms { my @pscat=&get_env_multiple('form.pscat'); my $pschp=$ENV{'form.pschp'}; my @psprt=&get_env_multiple('form.psprt'); + if (!@psprt) { $psprt[0]='0'; } my $showoptions=$ENV{'form.showoptions'}; my $pssymb=''; @@ -750,7 +762,7 @@ sub assessparms { } # --------------------------------------------------------- Get all assessments - extractResourceInformation(\%bighash, \@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allkeys, \%allmaps, $fcat, \%defp, \%mapp, \%symbp); + extractResourceInformation(\%bighash, \@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allkeys, \%allmaps, $fcat, \%defp, \%mapp, \%symbp,\%maptitles); $mapp{'0.0'} = ''; $symbp{'0.0'} = ''; @@ -779,6 +791,8 @@ sub assessparms { if ($snum==5) { $storeunder=$seclevelm; } if ($snum==4) { $storeunder=$seclevelr; } + my $delete; + if ($ENV{'form.pres_value'} eq '') { $delete=1;} my %storecontent = ($storeunder => $ENV{'form.pres_value'}, $storeunder.'.type' => $ENV{'form.pres_type'}); my $reply=''; @@ -795,10 +809,17 @@ sub assessparms { &Apache::lonnet::expirespread('','','assesscalc'); } # Store parameter - $reply=&Apache::lonnet::cput - ('resourcedata',\%storecontent, - $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, - $ENV{'course.'.$ENV{'request.course.id'}.'.num'}); + if ($delete) { + $reply=&Apache::lonnet::del + ('resourcedata',[keys(%storecontent)], + $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, + $ENV{'course.'.$ENV{'request.course.id'}.'.num'}); + } else { + $reply=&Apache::lonnet::cput + ('resourcedata',\%storecontent, + $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, + $ENV{'course.'.$ENV{'request.course.id'}.'.num'}); + } } else { # ------------------------------------------------------------------ Store User # @@ -814,14 +835,20 @@ sub assessparms { &Apache::lonnet::expirespread($uname,$udom,'assesscalc'); } # Store parameter - $reply=&Apache::lonnet::cput - ('resourcedata',\%storecontent,$udom,$uname); + if ($delete) { + $reply=&Apache::lonnet::del + ('resourcedata',[keys(%storecontent)],$udom,$uname); + } else { + $reply=&Apache::lonnet::cput + ('resourcedata',\%storecontent,$udom,$uname); + } } if ($reply=~/^error\:(.*)/) { $message.="Write Error: $1"; } # ---------------------------------------------------------------- Done storing + $message.='

Changes can take up to 10 minutes before being active for all students

'; } # --------------------------------------------- Devalidate cache for this child &Apache::lonnet::devalidatecourseresdata( @@ -894,13 +921,13 @@ sub assessparms { $r->print('
'); - $r->print('Select Enclosing Map'); + $r->print('Select Enclosing Map or Folder'); $r->print('\n"); } else { @@ -930,7 +957,6 @@ sub assessparms { $r->print('>All Parameters'); my $cnt=0; - foreach $tempkey (sort { $allparms{$a} cmp $allparms{$b} } keys %allparms ) { ++$cnt; @@ -949,10 +975,12 @@ sub assessparms { $r->print(''); + my %temphash=(); + foreach (@psprt) { $temphash{$_}=1; } foreach $tempkey (sort keys %allparts) { unless ($tempkey =~ /\./) { $r->print(''); @@ -962,7 +990,7 @@ sub assessparms { $r->print('Sort list by'); $r->print('