--- loncom/interface/lonparmset.pm 2005/06/04 17:35:19 1.208 +++ loncom/interface/lonparmset.pm 2005/06/05 01:37:26 1.209 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.208 2005/06/04 17:35:19 www Exp $ +# $Id: lonparmset.pm,v 1.209 2005/06/05 01:37:26 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -440,6 +440,8 @@ sub plink { $winvalue=$env{'form.recent_'.(split(/\_/,$type))[0]}; } } + + return ''. @@ -447,22 +449,13 @@ sub plink { } sub startpage { - my ($r,$id,$udom,$csec,$uname,$have_assessments)=@_; + my $r=shift; my $bodytag=&Apache::loncommon::bodytag('Set/Modify Course Parameters','', 'onUnload="pclose()"'); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef,'Table Mode Parameter Setting'); - my $chooseopt=&Apache::loncommon::select_dom_form($udom,'udom').' '. - &Apache::loncommon::selectstudent_link('parmform','uname','udom'); my $selscript=&Apache::loncommon::studentbrowser_javascript(); my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition(); - my %lt=&Apache::lonlocal::texthash( - 'captm' => "Course Assessments Parameters - Table Mode", - 'sg' => "Section/Group", - 'fu' => "For User", - 'oi' => "or ID", - 'ad' => "at Domain" - ); my $html=&Apache::lonxml::xmlbegin(); $r->print(< $bodytag $breadcrumbs -ENDHEAD - my %sectionhash=(); - my $sections=''; - if (&Apache::loncommon::get_sections( - $env{'course.'.$env{'request.course.id'}.'.domain'}, - $env{'course.'.$env{'request.course.id'}.'.num'}, - \%sectionhash)) { - $sections=$lt{'sg'}.': '; - } - $r->print(< -

$lt{'captm'}

-ENDHEAD3 - - if (!$have_assessments) { - $r->print(''.&mt('There are no assessment parameters in this course to set.').'
'); - } else { - $r->print(< -$sections -
-$lt{'fu'} - -$lt{'oi'} - -$lt{'ad'} -$chooseopt - + ENDHEAD - } } + sub print_row { my ($r,$which,$part,$name,$symbp,$rid,$default,$defaulttype,$display,$defbgone, $defbgtwo,$parmlev,$uname,$udom,$csec)=@_; @@ -700,10 +662,7 @@ sub extractResourceInformation { my $keyp = shift; my $allparms = shift; my $allparts = shift; - my $allkeys = shift; my $allmaps = shift; - my $fcat = shift; - my $defp = shift; my $mapp = shift; my $symbp = shift; my $maptitles=shift; @@ -725,25 +684,26 @@ sub extractResourceInformation { foreach (split(/\,/,&Apache::lonnet::metadata($srcf,'allpossiblekeys'))) { if ($_=~/^parameter\_(.*)/) { my $key=$_; - my $allkey=$1; - $allkey=~s/\_/\./g; - if (&Apache::lonnet::metadata($srcf,$key.'.hidden') eq - 'parm') { - next; #hide hidden things +# Hidden parameters + if (&Apache::lonnet::metadata($srcf,$key.'.hidden') eq 'parm') { + next; } my $display= &Apache::lonnet::metadata($srcf,$key.'.display'); my $name=&Apache::lonnet::metadata($srcf,$key.'.name'); my $part= &Apache::lonnet::metadata($srcf,$key.'.part'); +# +# allparms is a hash of parameter names +# my $parmdis = $display; - $parmdis =~ s|(\[Part.*)$||g; - my $partkey = $part; - $partkey =~ tr|_|.|; - $$allparms{$name} = $parmdis; - $$allparts{$part} = "[Part $part]"; - $$allkeys{$allkey}=$display; - if ($allkey eq $fcat) { - $$defp{$id}= &Apache::lonnet::metadata($srcf,$key); - } + $parmdis =~ s/\[Part.*$//g; + $$allparms{$name}=$parmdis; +# +# allparts is a hash of all parts +# + $$allparts{$part} = "Part: $part"; +# +# Remember all keys going with this resource +# if ($$keyp{$id}) { $$keyp{$id}.=','.$key; } else { @@ -785,44 +745,42 @@ sub parmmenu { } ENDSCRIPT - $r->print(&mt('Select Parameters to View')); + $r->print(); $r->print("\n"); my $cnt=0; foreach $tempkey (sort { $$allparms{$a} cmp $$allparms{$b} } keys %{$allparms} ) { - ++$cnt; - $r->print("\n") if ($cnt%2); - $r->print("\n'); + $r->print('>'.$$allparms{$tempkey}.''); + $cnt++; + if ($cnt==3) { + $r->print("\n"); + $cnt=0; + } } $r->print(' '); $r->print('
print("\nprint('value="'.$tempkey.'"'); if ($$pscat[0] eq "all" || grep $_ eq $tempkey, @{$pscat}) { $r->print(' checked'); } - $r->print('>'.$$allparms{$tempkey}.'
- +
'); } -sub menu { - my ($r,$allparms,$allparts,$allkeys,$pscat,$psprt,$fcat)=@_; - my $tempkey; - - &parmmenu($r,$allkeys,$pscat); - - $r->print(''); - $r->print(''); - - $r->print(''); - - $r->print('
'); $r->print(''); my %temphash=(); foreach (@{$psprt}) { $temphash{$_}=1; } - foreach $tempkey (sort keys %{$allparts}) { + foreach my $tempkey (sort keys %{$allparts}) { unless ($tempkey =~ /\./) { $r->print(''); } } - $r->print('

'.&mt('Sort list by').''); - $r->print(''); +} + +sub usermenu { + my ($r,$uname,$id,$udom,$csec)=@_; + my $chooseopt=&Apache::loncommon::select_dom_form($udom,'udom').' '. + &Apache::loncommon::selectstudent_link('parmform','uname','udom'); + my $selscript=&Apache::loncommon::studentbrowser_javascript(); + my %lt=&Apache::lonlocal::texthash( + 'sg' => "Section/Group", + 'fu' => "For User", + 'oi' => "or ID", + 'ad' => "at Domain" + ); + my %sectionhash=(); + my $sections=''; + if (&Apache::loncommon::get_sections( + $env{'course.'.$env{'request.course.id'}.'.domain'}, + $env{'course.'.$env{'request.course.id'}.'.num'}, + \%sectionhash)) { + $sections=$lt{'sg'}.': '; + } + $r->print(< +$sections +
+$lt{'fu'} + +$lt{'oi'} + +$lt{'ad'} +$chooseopt + +ENDMENU +} + +sub displaymenu { + my ($r,$allparms,$allparts,$pscat,$psprt)=@_; + $r->print('
'.&mt('Select Parameters to View').''. + &mt('Select Parts to View').'
'); + &parmmenu($r,$allparms,$pscat); + $r->print(''); + &partmenu($r,$allparts,$psprt); + $r->print('
'); +} + +sub mapmenu { + my ($r,$allmaps,$pschp,$maptitles)=@_; + $r->print(&mt('Select Enclosing Map or Folder').' '); + $r->print('

'); - + $r->print(""); +} + +sub levelmenu { + my ($r,$alllevs,$parmlev)=@_; + $r->print(&mt('Select Parameter Level'). + &Apache::loncommon::help_open_topic('Course_Parameter_Levels').' '); + $r->print('"); } ################################################## @@ -890,7 +911,7 @@ sub assessparms { my %maptitles=(); # -------------------------------------------------------- Variable declaration - my %allkeys=(); + my %allmaps=(); my %alllevs=(); @@ -908,8 +929,6 @@ sub assessparms { my %allparms; my %allparts; - my %defp; - @ids=(); %symbp=(); %typep=(); @@ -932,7 +951,6 @@ sub assessparms { my $pssymb=''; my $parmlev=''; - my $prevvisit=$env{'form.prevvisit'}; unless ($env{'form.parmlev'}) { $parmlev = 'map'; @@ -1003,11 +1021,8 @@ sub assessparms { unless ($csec) { $csec=''; } - my $fcat=$env{'form.fcat'}; - unless ($fcat) { $fcat=''; } - # --------------------------------------------------------- Get all assessments - &extractResourceInformation(\@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allkeys, \%allmaps, $fcat, \%defp, \%mapp, \%symbp,\%maptitles,\%uris); + &extractResourceInformation(\@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allmaps, \%mapp, \%symbp,\%maptitles,\%uris); $mapp{'0.0'} = ''; $symbp{'0.0'} = ''; @@ -1026,27 +1041,13 @@ sub assessparms { # ---------------------------------------------------------------- Done storing $message.='

'.&mt('Changes can take up to 10 minutes before being active for all students.').&Apache::loncommon::help_open_topic('Caching').'

'; } -# ------------------------------------------------------------------- Sort this - - @ids=sort { - if ($fcat eq '') { - $a<=>$b; - } else { - my ($result,@outpar)=&parmval($fcat,$a,$defp{$a},$uname,$udom,$csec); - my $aparm=$outpar[$result]; - ($result,@outpar)=&parmval($fcat,$b,$defp{$b},$uname,$udom,$csec); - my $bparm=$outpar[$result]; - 1*$aparm<=>1*$bparm; - } - } @ids; #----------------------------------------------- if all selected, fill in array - if ($pscat[0] eq "all" || !@pscat) {@pscat = (keys %allparms);} + if ($pscat[0] eq "all") {@pscat = (keys %allparms);} + if (!@pscat) { @pscat=('duedate','opendate','answerdate','weight','maxtries') }; if ($psprt[0] eq "all" || !@psprt) {@psprt = (keys %allparts);} # ------------------------------------------------------------------ Start page - &startpage($r,$id,$udom,$csec,$uname,scalar(keys(%allkeys))); - - $r->print(''); + &startpage($r); foreach ('tolerance','date_default','date_start','date_end', 'date_interval','int','float','string') { @@ -1054,54 +1055,26 @@ sub assessparms { $env{'form.recent_'.$_}.'" name="recent_'.$_.'">'); } - $r->print('

'.$message.'

'); + $r->print('

'.$message.'

'); - my $submitmessage = &mt('Update Section or Specific User'); if (!$pssymb) { - $r->print('\n"); - - $r->print(''); + $r->print('
'.&mt('Select Parameter Level'). - &Apache::loncommon::help_open_topic('Course_Parameter_Levels'). - ''); - $r->print('
'); - $r->print('\n"); + $r->print(''); } + $r->print('
'); + &levelmenu($r,\%alllevs,$parmlev); if ($parmlev ne 'general') { - $r->print('
'.&mt('Select Enclosing Map or Folder').'
'); + &mapmenu($r,\%allmaps,$pschp,\%maptitles); + $r->print('
'); + &displaymenu($r,\%allparms,\%allparts,\@pscat,\@psprt); } else { my ($map,$id,$resource)=&Apache::lonnet::decode_symb($pssymb); - $r->print("".&mt('Specific Resource')."$resource"); - $r->print(''); - $r->print(''); + $r->print(&mt('Specific Resource').": ".$resource. + ''); } - $r->print('
'); - + &usermenu($r,$uname,$id,$udom,$csec); - &menu($r,\%allparms,\%allparts,\%allkeys,\@pscat,\@psprt,$fcat); - - if (($prevvisit) || ($pschp) || ($pssymb)) { - $submitmessage = &mt("Update Course Assessment Parameter Display"); - } else { - $submitmessage = &mt("Set/Modify Course Assessment Parameters"); - } - $r->print(''); + $r->print('
'); my @temp_pscat; map { @@ -1111,7 +1084,7 @@ sub assessparms { @pscat = @temp_pscat; - if (($prevvisit) || ($pschp) || ($pssymb)) { + if (($env{'form.prevvisit'}) || ($pschp) || ($pssymb)) { # ----------------------------------------------------------------- Start Table my @catmarker=map { tr|.|_|; 'parameter_'.$_; } @pscat; my $csuname=$env{'user.name'};