--- loncom/interface/lonparmset.pm 2005/09/30 00:27:20 1.255 +++ loncom/interface/lonparmset.pm 2005/11/21 22:00:11 1.268 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.255 2005/09/30 00:27:20 banghart Exp $ +# $Id: lonparmset.pm,v 1.268 2005/11/21 22:00:11 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -316,6 +316,8 @@ sub storeparm_by_symb { # store parameter &storeparm_by_symb_inner ($symb,$spnam,$snum,$nval,$ntype,$uname,$udom,$csec); +# don't do anything if parameter was reset + unless ($nval) { return; } my ($prefix,$parm)=($spnam=~/^(.*[\_\.])([^\_\.]+)$/); # remember that this was set $recstack{$parm}=1; @@ -1571,10 +1573,7 @@ Set Defaults for All Resources in $folde Specifically for ENDMAPONE if ($uname) { - my %name=&Apache::lonnet::userenvironment($udom,$uname, - ('firstname','middlename','lastname','generation', 'id')); - my $person=$name{'firstname'}.' '.$name{'middlename'}.' ' - .$name{'lastname'}.' '.$name{'generation'}; + my $person=&Apache::loncommon::plainname($uname,$udom); $r->print(&mt("User")." $uname \($person\) ". &mt('in')." \n"); } else { @@ -1652,10 +1651,7 @@ ENDMAPONE $coursename
ENDMAPONE if ($uname) { - my %name=&Apache::lonnet::userenvironment($udom,$uname, - ('firstname','middlename','lastname','generation', 'id')); - my $person=$name{'firstname'}.' '.$name{'middlename'}.' ' - .$name{'lastname'}.' '.$name{'generation'}; + my $person=&Apache::loncommon::plainname($uname,$udom); $r->print(" ".&mt("User")." $uname \($person\) \n"); } else { $r->print(" ".&mt("ALL")." ".&mt("USERS")." \n"); @@ -2696,6 +2692,8 @@ ENDMAINFORMHEAD # my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $vgr = &Apache::lonnet::allowed('vgr',$env{'request.course.id'}); + my @menu = ( { text => 'Set Course Environment Parameters', @@ -2703,9 +2701,15 @@ ENDMAINFORMHEAD permission => $parm_permission, }, { text => 'Set Portfolio Metadata', - action => 'setinstmeta', + action => 'setrestrictmeta', permission => $parm_permission, }, + { text => 'Manange Course Slots', + url => '/adm/slotrequest?command=showslots', + permission => $vgr, + }, + { divider => 1, + }, { text => 'Set/Modify Resource Parameters - Helper Mode', url => '/adm/helper/parameter.helper', permission => $parm_permission, @@ -2730,6 +2734,10 @@ ENDMAINFORMHEAD ); my $menu_html = ''; foreach my $menu_item (@menu) { + if ($menu_item->{'divider'}) { + $menu_html .= '
'; + next; + } next if (! $menu_item->{'permission'}); $menu_html.='

'; $menu_html.=''; @@ -2755,30 +2763,26 @@ sub output_row { my $output; my $options=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.options'}; my $values=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name.'.values'}; - my $checked; unless (defined($options)) { $options = 'active,stuadd'; - $values = 'Type a list of values separated by commas.'; - } - $output.=''.$field_text.''; - $output.=''; - if ($options =~ m/onlyone/) { - $checked = ' CHECKED '; - } else { - $checked = ' '; + $values = ''; } - $output.='

'; - if ($options =~ m/stuadd/) { - $checked = ' CHECKED '; - } else { - $checked = ' '; + $output.=''.$field_text.':'; + $output.='
'; + + my @options= ( ['active', 'Show to student'], + ['onlyone','Student may select only one choice'], + ['stuadd', 'Student may type choices']); + foreach my $opt (@options) { + my $checked = ($options =~ m/$opt->[0]/) ? ' checked="checked" ' : '' ; + $output.=(' 'x5).'
'; } - $output.=''; - - $output.=''; return ($output); } -sub setinstmeta { + +sub setrestrictmeta { my ($r)=@_; my $next_meta; my $output; @@ -2786,16 +2790,16 @@ sub setinstmeta { my $put_result; $r->print(&Apache::lonxml::xmlbegin()); $r->print(' - LON-CAPA Set Portfolio Metadata + LON-CAPA Restrict Metadata '); - $r->print(&Apache::loncommon::bodytag('Set Portfolio Metadata')); + $r->print(&Apache::loncommon::bodytag('Restrict Metadata')); $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef, - 'Set Portfolio Metadata')); + 'Restrict Metadata')); my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; - my $key_base = $env{'course.'.$env{'request.course.id'}.'.metadata.'}; + my $key_base = $env{'course.'.$env{'request.course.id'}.'.'}; my $save_field = ''; - if ($env{'form.instmeta'}) { + if ($env{'form.restrictmeta'}) { foreach my $field (sort(keys(%env))) { if ($field=~m/^form.(.+)_(.+)$/) { my $options; @@ -2812,7 +2816,7 @@ sub setinstmeta { if ($env{'form.'.$meta_field.'_active'}) { $options.='active,'; } - my $name = 'metadata.'.$save_field; + my $name = $save_field; $put_result = &Apache::lonnet::put('environment', {'metadata.'.$meta_field.'.options'=>$options, 'metadata.'.$meta_field.'.values'=>$env{'form.'.$meta_field.'_values'}, @@ -2820,31 +2824,22 @@ sub setinstmeta { } } } - } &Apache::lonnet::coursedescription($env{'request.course.id'}); - my %metadata_fields = &Apache::lonmeta::fieldnames(); - - foreach my $field (sort(keys (%metadata_fields))) { - - if ($field =~ m/metadata/) { - $output.= &output_row($r, $field, $metadata_fields{$field}); - } + my %metadata_fields = &Apache::lonmeta::fieldnames('portfolio'); + foreach my $field (sort(keys(%metadata_fields))) { + &Apache::lonnet::logthis ($field); + if ($field ne 'courserestricted') { + $output.= &output_row($r, $field, $metadata_fields{$field}); + } } $r->print(< - +

- - $output -
Metadata ItemValuesOnly One ChoiceStudent Can Add Choices
- +

- ENDenv - - $r->print(' '); return 'ok'; @@ -3021,6 +3016,7 @@ Main handler. Calls &assessparms and &c ################################################## # use Data::Dumper; + sub handler { my $r=shift; @@ -3081,10 +3077,10 @@ sub handler { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview', text=>"Overview Mode"}); &overview($r); - } elsif ($env{'form.action'} eq 'setinstmeta' && $parm_permission) { - &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setinstmeta', - text=>"Portfolio Metadata"}); - &setinstmeta($r); + } elsif ($env{'form.action'} eq 'setrestrictmeta' && $parm_permission) { + &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setrestrictmeta', + text=>"Restrict Metadata"}); + &setrestrictmeta($r); } elsif ($env{'form.action'} eq 'newoverview' && $parm_permission) { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview', text=>"Overview Mode"});