--- loncom/interface/lonparmset.pm 2005/09/02 22:35:48 1.248 +++ loncom/interface/lonparmset.pm 2005/09/28 13:29:17 1.252 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.248 2005/09/02 22:35:48 albertel Exp $ +# $Id: lonparmset.pm,v 1.252 2005/09/28 13:29:17 banghart 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\./)) { @@ -2191,7 +2195,6 @@ sub listdata { my $foundkeys=0; my %keyorder=&standardkeyorder(); foreach my $thiskey (sort { - my $return; if ($sortorder eq 'realmstudent') { my ($astudent,$arealm)=($a=~/^\Q$env{'request.course.id'}\E\.\[([^\.]+)\]\.(.+)\.[^\.]+$/); my ($bstudent,$brealm)=($b=~/^\Q$env{'request.course.id'}\E\.\[([^\.]+)\]\.(.+)\.[^\.]+$/); @@ -2747,17 +2750,42 @@ ENDMAINFORMHEAD return; } ### Set instructor defined metadata +sub output_row { + my ($field_name) = @_; + my $output; + my $meta_hash_ref=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name}; + my $values=$$meta_hash_ref{'values'}; + my $checked; + unless (defined($$meta_hash_ref{'active'})) { + $$meta_hash_ref{'active'} = 'no'; + $$meta_hash_ref{'stu_add_values'} = 'yes'; + $$meta_hash_ref{'values'} = 'Type a list of values separated by commas.'; + $$meta_hash_ref{'stu_pick_many'} = 'yes'; + } + $output.=''.$field_name.''; + $output.=''; + if ($$meta_hash_ref{'stu_add_values'}eq'yes') { + $checked = ' CHECKED '; + } else { + $checked = ' '; + } + $output.='
'; + if ($$meta_hash_ref{'stu_pick_many'}eq'yes') { + $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 @@ -2768,66 +2796,88 @@ sub setinstmeta { 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 $save_field = ''; + my %meta_hash; + if ($env{'form.instmeta'}) { + foreach my $field (sort %env) { + if ($field=~m/^form.(.+)_(.+)$/) { + my $meta_field = $1; + my $meta_key = $2; + if ($save_field eq $meta_field) { + %meta_hash = {$meta_key=>[$env{$field}]}; + } else { + if ($save_field ne '') { + %meta_hash = {active=>'yes'}; + my $value = \%meta_hash; + my $name = $save_field; + $r->print('Saving '.$name.' meta
'); + $put_result = &Apache::lonnet::put('environment', + {$name=>$value},$dom,$crs); + } + $save_field = $meta_field; + %meta_hash = {$meta_key=>[$env{$field}]}; + } + } + + + } + %meta_hash = {active=>'yes'}; + my $value = \%meta_hash; + my $name = $save_field; + $r->print('Saving '.$name.' meta
'); + $put_result = &Apache::lonnet::put('environment', + {$name=>$value},$dom,$crs); + } 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}; + my $name; + my $value; $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'}; + my $name = 'metadata.'.$env{'form.titlenew'}; + my %meta_hash = {values=>[$env{'form.valuesnew'}], + allow_pick=>'many', + allow_type=>'no'}; + + my $value = \%meta_hash; $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); - } - - } - &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'}); + $output.= &output_row("Title"); + $output.= &output_row("Subject"); + $output.= &output_row("Keywords"); +# foreach my $key (sort keys %env) { +# if ($key=~m/^course\.$env{'request.course.id'}\.metadata\.(.+)$/) { +# my $meta_data_item = $1; +# my $meta_hash=$env{$key}; +# # keys are 'values', stu_pick_many, stu_add_values, active +# +# $output.=''.$meta_data_item.''; +# $output.='Select one:
'; +# $output.='Select many: '; +# $output.=''; +# } +# } +# $output.='Create new instructor metadata item
'; +# $output.=''; +# $output.='students must pick only one:
'; +# $output.='Allow student to type extra info: '; +# $output.=''; +# $output.=''; +# $output.=''; $r->print(<

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