--- loncom/interface/lonparmset.pm 2005/09/23 20:19:18 1.239.2.2 +++ loncom/interface/lonparmset.pm 2005/10/14 04:25:56 1.259 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.239.2.2 2005/09/23 20:19:18 albertel Exp $ +# $Id: lonparmset.pm,v 1.259 2005/10/14 04:25:56 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1954,7 +1954,7 @@ sub crsenv { 'disableexampointprint' ); foreach my $parameter (sort(keys(%values))) { - unless ($parameter =~ m/^internal\./) { + unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./)) { if (! $descriptions{$parameter}) { $descriptions{$parameter}=$parameter; push(@Display_Order,$parameter); @@ -2702,6 +2702,10 @@ ENDMAINFORMHEAD action => 'crsenv', permission => $parm_permission, }, + { text => 'Set Portfolio Metadata', + action => 'setrestrictmeta', + permission => $parm_permission, + }, { text => 'Set/Modify Resource Parameters - Helper Mode', url => '/adm/helper/parameter.helper', permission => $parm_permission, @@ -2745,8 +2749,110 @@ ENDMAINFORMHEAD $r->print($menu_html); return; } +### Set portfolio metadata +sub output_row { + my ($r, $field_name, $field_text) = @_; + my $output; + my $options=$env{'course.'.$env{'request.course.id'}.'.'.$field_name.'.options'}; + my $values=$env{'course.'.$env{'request.course.id'}.'.'.$field_name.'.values'}; + my $checked; + unless (defined($options)) { + $options = 'active,stuadd'; + $values = 'Type a list of values separated by commas.'; + } + if ($options =~ m/active/) { + $checked = ' checked="checked" '; + } else { + $checked = ' '; + } + $output.='
'; + $output.=''.$field_text.''; + $output.=''; + if ($options =~ m/onlyone/) { + $checked = ' checked="checked" '; + } else { + $checked = ' '; + } + $output.='
'; + if ($options =~ m/stuadd/) { + $checked = ' checked="checked" '; + } else { + $checked = ' '; + } + $output.=''; + + $output.=''; + return ($output); +} +sub setrestrictmeta { + my ($r)=@_; + my $next_meta; + my $output; + my $item_num; + my $put_result; + $r->print(&Apache::lonxml::xmlbegin()); + $r->print(' + LON-CAPA Set Portfolio Metadata + '); + $r->print(&Apache::loncommon::bodytag('Set Portfolio Metadata')); + $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef, + 'Set Portfolio 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'}.'.'}; + my $save_field = ''; + if ($env{'form.restrictmeta'}) { + foreach my $field (sort(keys(%env))) { + if ($field=~m/^form.(.+)_(.+)$/) { + my $options; + my $meta_field = $1; + my $meta_key = $2; + if ($save_field ne $meta_field) { + $save_field = $meta_field; + if ($env{'form.'.$meta_field.'_stuadd'}) { + $options.='stuadd,'; + } + if ($env{'form.'.$meta_field.'_onlyone'}) { + $options.='onlyone,'; + } + if ($env{'form.'.$meta_field.'_active'}) { + $options.='active,'; + } + my $name = $save_field; + $put_result = &Apache::lonnet::put('environment', + {$meta_field.'.options'=>$options, + $meta_field.'.values'=>$env{'form.'.$meta_field.'_values'}, + },$dom,$crs); + } + } + } + + } + &Apache::lonnet::coursedescription($env{'request.course.id'}); + my %metadata_fields = &Apache::lonmeta::fieldnames('portfolio'); + + foreach my $field (sort(keys(%metadata_fields))) { + $output.= &output_row($r, $field, $metadata_fields{$field}); + } + $r->print(< + +

+ + + $output +
ActiveMetadata ItemValuesOnly One ChoiceStudent Can Add Choices
+ + +ENDenv + + + $r->print(' + '); + return 'ok'; +} ################################################## sub defaultsetter { @@ -2919,6 +3025,7 @@ Main handler. Calls &assessparms and &c ################################################## # use Data::Dumper; + sub handler { my $r=shift; @@ -2932,7 +3039,7 @@ sub handler { 'pres_marker', 'pres_value', 'pres_type', - 'udom','uname','symb']); + 'udom','uname','symb','serial']); &Apache::lonhtmlcommon::clear_breadcrumbs(); @@ -2979,6 +3086,10 @@ sub handler { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview', text=>"Overview Mode"}); &overview($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"});