--- loncom/interface/lonmeta.pm 2008/12/13 22:17:15 1.212.2.2
+++ loncom/interface/lonmeta.pm 2008/12/10 18:43:32 1.218
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Metadata display handler
#
-# $Id: lonmeta.pm,v 1.212.2.2 2008/12/13 22:17:15 raeburn Exp $
+# $Id: lonmeta.pm,v 1.218 2008/12/10 18:43:32 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -42,24 +42,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)/});
@@ -182,7 +164,7 @@ sub evalgraph {
my $val=int($value*10.+0.5)-10;
my $output='
';
if ($val>=20) {
- $output.=''.(' ' x2).' | ';
+ $output.='  | ';
} else {
$output.=' | '.
' | ';
@@ -192,7 +174,7 @@ sub evalgraph {
$output.=' | '.
' | ';
} else {
- $output.=''.(' ' x2).' | ';
+ $output.='  | ';
}
$output.=' ('.sprintf("%5.2f",$value).') |
';
return $output;
@@ -573,13 +555,12 @@ sub selectbox {
$functionref=\&direct;
}
my $selout='';
}
@@ -812,7 +793,7 @@ sub handler {
{'domain' => $resdomain,}));
&present_editable_metadata($r,$uri);
} else {
- $r->print(&Apache::loncommon::start_page('Catalog Information',
+ $r->print(&Apache::loncommon::start_page('Metadata',
undef,
{'domain' => $resdomain,}));
&present_uneditable_metadata($r,$uri);
@@ -851,11 +832,11 @@ sub report_bombs {
ENDCLEAR
my %brokenurls =
&Apache::lonmsg::all_url_author_res_msg($author,$domain);
- foreach my $key (sort(keys(%brokenurls))) {
- if ($key=~/^\Q$uri\E/) {
+ foreach (sort(keys(%brokenurls))) {
+ if ($_=~/^\Q$uri\E/) {
$r->print
- (''.$key.''.
- &Apache::lonmsg::retrieve_author_res_msg($key).
+ (''.$_.''.
+ &Apache::lonmsg::retrieve_author_res_msg($_).
'
');
}
}
@@ -878,8 +859,8 @@ sub present_uneditable_metadata {
my $uploaded = ($uri =~ m|/uploaded/|);
my %content=();
# Read file
- foreach my $key (split(/\,/,&Apache::lonnet::metadata($uri,'keys'))) {
- $content{$key}=&Apache::lonnet::metadata($uri,$key);
+ foreach (split(/\,/,&Apache::lonnet::metadata($uri,'keys'))) {
+ $content{$_}=&Apache::lonnet::metadata($uri,$_);
}
# Render Output
# displayed url
@@ -947,20 +928,20 @@ sub present_uneditable_metadata {
}
foreach my $field (@fields) {
$table.=&Apache::lonhtmlcommon::row_title($lt{$field})
- .&prettyprint($field,$content{$field}).
- .&Apache::lonhtmlcommon::row_closure();
+ .&prettyprint($field,$content{$field})
+ .&Apache::lonhtmlcommon::row_closure();
delete($content{$field});
}
#
$r->print("$title
"
- .''
- .$disuri.'
'
- .$obsoletewarning
- .$versiondisplay
- .'
'
- .&Apache::lonhtmlcommon::start_pick_box()
- .$table
- .&Apache::lonhtmlcommon::end_pick_box()
+ .''
+ .$disuri.'
'
+ .$obsoletewarning
+ .$versiondisplay
+ .'
'
+ .&Apache::lonhtmlcommon::start_pick_box()
+ .$table
+ .&Apache::lonhtmlcommon::end_pick_box()
);
if (!$uploaded && $env{'user.adv'}) {
&print_dynamic_metadata($r,$uri,\%content);
@@ -989,14 +970,14 @@ sub print_dynamic_metadata {
exists($dynmeta{'course'})) {
$r->print(''.&mt('Access and Usage Statistics').'
'.
&Apache::lonhtmlcommon::start_pick_box());
- foreach my $item ('count',
- 'sequsage','sequsage_list',
- 'comefrom','comefrom_list',
- 'goto','goto_list',
- 'course','course_list') {
- $r->print(&Apache::lonhtmlcommon::row_title($lt{$item})
- .&prettyprint($item,$dynmeta{$item})
- .&Apache::lonhtmlcommon::row_closure()
+ foreach ('count',
+ 'sequsage','sequsage_list',
+ 'comefrom','comefrom_list',
+ 'goto','goto_list',
+ 'course','course_list') {
+ $r->print(&Apache::lonhtmlcommon::row_title($lt{$_})
+ .&prettyprint($_,$dynmeta{$_})
+ .&Apache::lonhtmlcommon::row_closure()
);
}
$r->print(&Apache::lonhtmlcommon::end_pick_box());
@@ -1016,16 +997,16 @@ sub print_dynamic_metadata {
''.
&Apache::lonhtmlcommon::start_pick_box());
$r->print(&Apache::lonhtmlcommon::row_title($lt{'stdno'})
- .&prettyprint('stdno',$dynmeta{'stdno'})
- .&Apache::lonhtmlcommon::row_closure()
+ .&prettyprint('stdno',$dynmeta{'stdno'})
+ .&Apache::lonhtmlcommon::row_closure()
);
- foreach my $item ('avetries','difficulty','disc') {
- $r->print(&Apache::lonhtmlcommon::row_title($lt{$item})
- .&prettyprint($item,sprintf('%5.2f',$dynmeta{$item})).
- .&Apache::lonhtmlcommon::row_closure()
+ foreach ('avetries','difficulty','disc') {
+ $r->print(&Apache::lonhtmlcommon::row_title($lt{$_})
+ .&prettyprint($_,sprintf('%5.2f',$dynmeta{$_}))
+ .&Apache::lonhtmlcommon::row_closure()
);
}
- $r->print(&Apache::lonhtmlcommon::end_pick_box());
+ $r->print(&Apache::lonhtmlcommon::end_pick_box());
}
if (exists($dynmeta{'stats'})) {
#
@@ -1034,15 +1015,15 @@ sub print_dynamic_metadata {
&mt('Recent Detailed Assessment Statistical Data').
'');
my $table=&Apache::loncommon::start_data_table()
- .&Apache::loncommon::start_data_table_header_row()
- .''.&mt('Course').' | '.
- .''.&mt('Section(s)').' | '.
- .''.&mt('Num Student').'s | '.
- .''.&mt('Mean Tries').' | '.
- .''.&mt('Degree of Difficulty').' | '.
- .''.&mt('Degree of Discrimination').' | '.
- .''.&mt('Time of computation').' | '.
- .&Apache::loncommon::end_data_table_header_row().$/;
+ .&Apache::loncommon::start_data_table_header_row()
+ .''.&mt('Course').' | '
+ .''.&mt('Section(s)').' | '
+ .''.&mt('Num Students').' | '
+ .''.&mt('Mean Tries').' | '
+ .''.&mt('Degree of Difficulty').' | '
+ .''.&mt('Degree of Discrimination').' | '
+ .''.&mt('Time of computation').' | '
+ .&Apache::loncommon::end_data_table_header_row().$/;
foreach my $identifier (sort(keys(%{$dynmeta{'stats'}}))) {
my $data = $dynmeta{'stats'}->{$identifier};
my $course = $data->{'course'};
@@ -1060,10 +1041,10 @@ sub print_dynamic_metadata {
''.$data->{'sections'}.' | ';
$table .=
''.$data->{'stdno'}.' | ';
- foreach my $item ('avetries','difficulty','disc') {
+ foreach ('avetries','difficulty','disc') {
$table .= '';
- if (exists($data->{$item})) {
- $table .= sprintf('%.2f',$data->{$item}).' ';
+ if (exists($data->{$_})) {
+ $table .= sprintf('%.2f',$data->{$_}).' ';
} else {
$table .= '';
}
@@ -1095,10 +1076,10 @@ sub print_dynamic_metadata {
exists($dynmeta{'technical'})){
$r->print(''.&mt('Evaluation Data').''.
&Apache::lonhtmlcommon::start_pick_box());
- foreach my $item ('clear','depth','helpful','correct','technical') {
- $r->print(&Apache::lonhtmlcommon::row_title($lt{$item})
- .&prettyprint($item,$dynmeta{$item})
- .&Apache::lonhtmlcommon::row_closure()
+ foreach ('clear','depth','helpful','correct','technical') {
+ $r->print(&Apache::lonhtmlcommon::row_title($lt{$_})
+ .&prettyprint($_,$dynmeta{$_})
+ .&Apache::lonhtmlcommon::row_closure()
);
}
$r->print(&Apache::lonhtmlcommon::end_pick_box());
@@ -1131,7 +1112,8 @@ sub print_dynamic_metadata {
&mt('Additional Metadata (non-standard, parameters, exports)').
'');
$r->print(&Apache::lonhtmlcommon::start_pick_box());
- foreach my $name (sort(keys(%content))) {
+ foreach (sort(keys(%content))) {
+ my $name=$_;
if ($name!~/\.display$/) {
my $display=&Apache::lonnet::metadata($uri,
$name.'.display');
@@ -1139,16 +1121,17 @@ sub print_dynamic_metadata {
$display=$name;
};
my $otherinfo='';
- foreach my $item ('name','part','type','default') {
+ foreach ('name','part','type','default') {
if (defined(&Apache::lonnet::metadata($uri,
- $name.'.'.$item))) {
- $otherinfo.=' '.$item.'='.
+ $name.'.'.$_))) {
+ $otherinfo.=' '.$_.'='.
&Apache::lonnet::metadata($uri,
- $name.'.'.$item).'; ';
+ $name.'.'.$_).'; ';
}
}
$r->print(&Apache::lonhtmlcommon::row_title($display)
- .$content{$name});
+ .$content{$name}
+ );
if ($otherinfo) {
$r->print(' ('.$otherinfo.')');
}
@@ -1227,11 +1210,11 @@ ENDDEL
}
$r->print(' '.$bombs);
} else {
- my $displayfile=&mt('Catalog Information for [_1]',$disuri);
+ my $displayfile=&mt('Metadata for [_1]',$disuri);
if ($disuri=~/\/default$/) {
my $dir=$disuri;
$dir=~s/default$//;
- $displayfile=&mt('Default Cataloging Information for Directory [_1]',$dir);
+ $displayfile=&mt('Default Metadata for Directory [_1]',$dir);
}
%Apache::lonpublisher::metadatafields=();
%Apache::lonpublisher::metadatakeys=();
@@ -1394,8 +1377,8 @@ ENDEDIT
my ($outcome,$result) = &store_metadata($fn,$uri,'store');
$r->print($result);
}
- $r->print($output.' ');
+ $r->print($output.' ');
if ($file_type eq 'portfolio' || $file_type eq 'groups') {
my ($port_path,$group) = &get_port_path_and_group($uri);
@@ -1560,3 +1543,95 @@ sub update_metadata_table {
1;
__END__
+
+=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 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
|