--- loncom/interface/lonparmset.pm 2005/09/02 22:36:38 1.249 +++ loncom/interface/lonparmset.pm 2005/10/03 20:21:24 1.257 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.249 2005/09/02 22:36:38 albertel Exp $ +# $Id: lonparmset.pm,v 1.257 2005/10/03 20:21:24 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1921,6 +1921,9 @@ sub crsenv { 'disablesigfigs' => ''.&mt('Disable checking of Significant Figures').'
'. ' ('.&mt('"[_1]" to disable, anything else if not','yes').')', + 'disableexampointprint' + => ''.&mt('Disable automatically printing point values onto exams.').'
'. + ' ('.&mt('"[_1]" to disable, anything else if not','yes').')', 'tthoptions' => ''.&mt('Default set of options to pass to tth/m when converting tex').'' ); @@ -1947,7 +1950,8 @@ sub crsenv { 'default_enrollment_start_date', 'default_enrollment_end_date', 'tthoptions', - 'disablesigfigs' + 'disablesigfigs', + 'disableexampointprint' ); foreach my $parameter (sort(keys(%values))) { unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./)) { @@ -2698,7 +2702,7 @@ ENDMAINFORMHEAD action => 'crsenv', permission => $parm_permission, }, - { text => 'Set Instructor Defined Metadata', + { text => 'Set Portfolio Metadata', action => 'setinstmeta', permission => $parm_permission, }, @@ -2745,91 +2749,103 @@ ENDMAINFORMHEAD $r->print($menu_html); return; } -### Set instructor defined metadata +### Set portfolio metadata +sub output_row { + my ($r, $field_name, $field_text) = @_; + 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.'; + } + 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 setinstmeta { my ($r)=@_; my $next_meta; my $output; my $item_num; my $put_result; - if ($env{'form.serial'}) { - $next_meta = $env{'form.serial'}; - } else { - $next_meta = 1; - } $r->print(&Apache::lonxml::xmlbegin()); $r->print(' - LON-CAPA Set Instructor Metadata + LON-CAPA Set Portfolio Metadata '); - $r->print(&Apache::loncommon::bodytag('Set Instructor Metadata')); + $r->print(&Apache::loncommon::bodytag('Set Portfolio Metadata')); $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef, - 'Set Instructor Metadata')); + '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'}.'.metadata.'}; - foreach my $field (%env) { - # start by looking for populated fields - if ($field=~m/type(\d+)/) { - my $item_num = $1; - my $name = 'metadata.'.$item_num.'.type'; - my $value = $env{'form.type'.$item_num}; - $put_result = &Apache::lonnet::put('environment', - {$name=>$value},$dom,$crs); - $name = 'metadata.'.$item_num.'.values'; - $value = $env{'form.values'.$item_num}; - $put_result = &Apache::lonnet::put('environment', - {$name=>$value},$dom,$crs); - } - if ($field=~m/newfield/) { - my $item_num = $env{'form.serial'}; - my $name = 'metadata.'.$item_num.'.type'; - my $value = $env{'form.typenew'}; - $put_result = &Apache::lonnet::put('environment', - {$name=>$value},$dom,$crs); - $name = 'metadata.'.$item_num.'.values'; - $value = $env{'form.valuesnew'}; - $put_result = &Apache::lonnet::put('environment', - {$name=>$value},$dom,$crs); - $name = 'metadata.'.$item_num.'.title'; - $value = $env{'form.titlenew'}; - $put_result = &Apache::lonnet::put('environment', - {$name=>$value},$dom,$crs); - + my $save_field = ''; + if ($env{'form.instmeta'}) { + 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 = 'metadata.'.$save_field; + $put_result = &Apache::lonnet::put('environment', + {'metadata.'.$meta_field.'.options'=>$options, + 'metadata.'.$meta_field.'.values'=>$env{'form.'.$meta_field.'_values'}, + },$dom,$crs); + } + } } - - } - &Apache::lonnet::coursedescription($env{'request.course.id'}); - foreach my $key (sort keys %env) { - if ($key=~m/^course\.$env{'request.course.id'}\.metadata\.\d+\.title$/) { - $key=~m/(^course\.$env{'request.course.id'}\.metadata\.)(\d+)\.title/; - $key_base = $1; - $item_num = $2; - if ($item_num ge $next_meta) { - $next_meta = $item_num + 1; - } - $output.=''.$env{$key}.''; - $output.='Select one:
'; - $output.='Select many: '; - $output.=''; - } - } - $output.='Create new instructor metadata item
'; - $output.=''; - $output.='Select one:
'; - $output.='Select many: '; - $output.=''; - $output.=''; - $output.=''; + } + &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}); + } + } $r->print(<

- + $output
TitleOptionsChoices
ActiveMetadata ItemValuesOnly One ChoiceStudent Can Add Choices
- + ENDenv @@ -3073,7 +3089,7 @@ sub handler { &overview($r); } elsif ($env{'form.action'} eq 'setinstmeta' && $parm_permission) { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setinstmeta', - text=>"Instructor Metadata"}); + text=>"Portfolio Metadata"}); &setinstmeta($r); } elsif ($env{'form.action'} eq 'newoverview' && $parm_permission) { &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview',