--- loncom/interface/lonparmset.pm 2005/09/28 13:29:17 1.252 +++ loncom/interface/lonparmset.pm 2005/10/26 21:42:10 1.262 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.252 2005/09/28 13:29:17 banghart Exp $ +# $Id: lonparmset.pm,v 1.262 2005/10/26 21:42:10 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2702,8 +2702,8 @@ ENDMAINFORMHEAD action => 'crsenv', permission => $parm_permission, }, - { text => 'Set Instructor Defined Metadata', - action => 'setinstmeta', + { text => 'Set Portfolio Metadata', + action => 'setrestrictmeta', permission => $parm_permission, }, { text => 'Set/Modify Resource Parameters - Helper Mode', @@ -2749,38 +2749,44 @@ ENDMAINFORMHEAD $r->print($menu_html); return; } -### Set instructor defined metadata +### Set portfolio metadata sub output_row { - my ($field_name) = @_; + my ($r, $field_name, $field_text) = @_; my $output; - my $meta_hash_ref=$env{'course.'.$env{'request.course.id'}.'.metadata.'.$field_name}; - my $values=$$meta_hash_ref{'values'}; + 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($$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 '; + unless (defined($options)) { + $options = 'active,stuadd'; + $values = ''; + } + $output.=''.$field_text.':'; + $output.='
'; + if ($options =~ m/active/) { + $checked = ' checked="checked" '; } else { - $checked = ' '; + $checked = ' '; + } + $output.='     '; + $output.='Show to student
'; + if ($options =~ m/onlyone/) { + $checked = ' checked="checked" '; + } else { + $checked = ' '; } - $output.='
'; - if ($$meta_hash_ref{'stu_pick_many'}eq'yes') { - $checked = ' CHECKED '; + $output.='     '; + $output.='Student may select only one choice
'; + if ($options =~ m/stuadd/) { + $checked = ' checked="checked" '; } else { $checked = ' '; } - $output.=''; - $output.=''; - + $output.='     '; + $output.='Student may type choices
'; return ($output); } -sub setinstmeta { + +sub setrestrictmeta { my ($r)=@_; my $next_meta; my $output; @@ -2788,104 +2794,53 @@ sub setinstmeta { my $put_result; $r->print(&Apache::lonxml::xmlbegin()); $r->print(' - LON-CAPA Set Instructor Metadata + LON-CAPA Restrict Metadata '); - $r->print(&Apache::loncommon::bodytag('Set Instructor Metadata')); + $r->print(&Apache::loncommon::bodytag('Restrict Metadata')); $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef, - 'Set Instructor 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 = ''; - my %meta_hash; - if ($env{'form.instmeta'}) { - foreach my $field (sort %env) { + 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 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); - } + if ($save_field ne $meta_field) { $save_field = $meta_field; - %meta_hash = {$meta_key=>[$env{$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', + {'metadata.'.$meta_field.'.options'=>$options, + 'metadata.'.$meta_field.'.values'=>$env{'form.'.$meta_field.'_values'}, + },$dom,$crs); } } - - - } - %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 $name; - my $value; - $put_result = &Apache::lonnet::put('environment', - {$name=>$value},$dom,$crs); - $put_result = &Apache::lonnet::put('environment', - {$name=>$value},$dom,$crs); - } - if ($field=~m/newfield/) { - 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); } - } + } &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.=''; + 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 -
Metadata ItemValuesOnly One ChoiceStudent Can Add Choices
- +

- ENDenv - - $r->print(' '); return 'ok'; @@ -3062,6 +3017,7 @@ Main handler. Calls &assessparms and &c ################################################## # use Data::Dumper; + sub handler { my $r=shift; @@ -3122,10 +3078,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=>"Instructor 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"});