--- loncom/interface/lonmeta.pm 2007/01/16 07:26:45 1.199 +++ loncom/interface/lonmeta.pm 2008/11/17 14:06:14 1.214 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Metadata display handler # -# $Id: lonmeta.pm,v 1.199 2007/01/16 07:26:45 raeburn Exp $ +# $Id: lonmeta.pm,v 1.214 2008/11/17 14:06:14 schafran Exp $ # # Copyright Michigan State University Board of Trustees # @@ -26,6 +26,141 @@ # http://www.lon-capa.org/ +=head1 NAME + +Apache::lonmeta - display meta data + +=head1 SYNOPSIS + +Handler to display meta data + +This is part of the LearningOnline Network with CAPA project +described at http://www.lon-capa.org. + +=head1 HANDLER SUBROUTINE + +handler() + +=head1 OTHER SUBROUTINES + +=over + +=item * + +&get_dynamic_metadata_from_sql($url) : + +Queries sql database for dynamic metdata +Returns a hash of hashes, with keys of urls which match $url +Returned fields are given below. + +Examples: + + %DynamicMetadata = &Apache::lonmeta::get_dynmaic_metadata_from_sql + ('/res/msu/korte/'); + + $DynamicMetadata{'/res/msu/korte/example.problem'}->{$field} + +=item * + +dynamicmeta() : Fetch and evaluate dynamic metadata + +=item * + +access_count() + +=item * + +alttag() : Try to make an alt tag if there is none + +=item * + +authordisplay() : Author display + +=item * + +evalgraph() : Pretty display + +=item * + +diffgraph() + +=item * + +fieldnames() + +=item * + +portfolio_linked_path() + +=item * + +get_port_path_and_group() + +=item * + +portfolio_display_uri() + +=item * + +pre_select_course() + +=item * + +select_course() + +=item * + +prettyprint() : Pretty printing of metadata field + +=item * + +direct() : Pretty input of metadata field + +=item * + +selectbox() + +=item * + +relatedfield() + +=item * + +prettyinput() + +=item * + +report_bombs() + +=item * + +present_uneditable_metadata() + +=item * + +present_editable_metadata() + +=item * + +store_metadata() + +=item * + +store_transferred_addedfields() + +=item * + +store_portfolio_metadata() + +=item * + +update_metadata_table() + +=back + +=cut + + package Apache::lonmeta; use strict; @@ -42,24 +177,6 @@ use Apache::lonmsg; use LONCAPA qw(:DEFAULT :match); -############################################################ -############################################################ -## -## &get_dynamic_metadata_from_sql($url) -## -## Queries sql database for dynamic metdata -## Returns a hash of hashes, with keys of urls which match $url -## Returned fields are given below. -## -## Examples: -## -## %DynamicMetadata = &Apache::lonmeta::get_dynmaic_metadata_from_sql -## ('/res/msu/korte/'); -## -## $DynamicMetadata{'/res/msu/korte/example.problem'}->{$field} -## -############################################################ -############################################################ sub get_dynamic_metadata_from_sql { my ($url) = shift(); my ($authordom,$author)=($url=~m{^/res/($match_domain)/($match_username)/}); @@ -265,7 +382,7 @@ sub fieldnames { 'correct' => 'Material appears to be correct', 'technical' => 'Resource is technically correct', 'avetries' => 'Average number of tries till solved', - 'stdno' => 'Total number of students who have worked on this problem', + 'stdno' => 'Statistics calculated for number of students', 'difficulty' => 'Degree of difficulty', 'disc' => 'Degree of discrimination', 'dependencies' => 'Resources used by this resource', @@ -383,7 +500,40 @@ sub select_course { $Apache::lonpublisher::metadatafields{'courserestricted'}; my $selected = ($current_restriction eq 'none' ? 'selected="selected"' : ''); - + if ($current_restriction =~ /^course\.($match_domain\_$match_courseid)$/) { + my $assoc_crs = $1; + my $added_metadata_fields = &Apache::lonparmset::get_added_meta_fieldnames($assoc_crs); + if (ref($added_metadata_fields) eq 'HASH') { + if (keys(%{$added_metadata_fields}) > 0) { + my $transfernotes; + foreach my $field_name (keys(%{$added_metadata_fields})) { + my $value = $Apache::lonpublisher::metadatafields{$field_name}; + if ($value) { + $transfernotes .= + &Apache::loncommon::start_data_table_row(). + '