--- loncom/interface/lonmeta.pm 2004/04/14 16:14:29 1.67 +++ loncom/interface/lonmeta.pm 2004/04/14 21:22:44 1.71 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Metadata display handler # -# $Id: lonmeta.pm,v 1.67 2004/04/14 16:14:29 matthew Exp $ +# $Id: lonmeta.pm,v 1.71 2004/04/14 21:22:44 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -114,21 +114,21 @@ sub evalgraph { return ''; } my $val=int($value*10.+0.5)-10; - my $output=''; + my $output='
'; if ($val>=20) { - $output.=''; + $output.=''; } else { - $output.=''. - ''; + $output.=''. + ''; } $output.=''; if ($val>20) { - $output.=''. - ''; + $output.=''. + ''; } else { - $output.=''; + $output.=''; } - $output.='
                  ('.$value.')
'; + $output.=' ('.sprintf("%5.2f",$value).') '; return $output; } @@ -140,15 +140,15 @@ sub diffgraph { my $val=int(40.0*$value+0.5); my @colors=('#FF9933','#EEAA33','#DDBB33','#CCCC33', '#BBDD33','#CCCC33','#DDBB33','#EEAA33'); - my $output=''; + my $output='
'; for (my $i=0;$i<8;$i++) { if ($val>$i*5) { - $output.=''; + $output.=''; } else { - $output.=''; + $output.=''; } } - $output.='
     ('.$value.')
'; + $output.=' ('.sprintf("%3.2f",$value).') '; return $output; } @@ -252,9 +252,11 @@ sub prettyprint { ($type eq 'comefrom_list') || ($type eq 'sequsage_list')) { return join('
',map { - my $url=&Apache::lonnet::clutter($_); - ''.&Apache::lonnet::gettitle($url).''. - &Apache::lonhtmlcommon::crumbs($url,'preview','',undef,'+0'); + my $url = &Apache::lonnet::clutter($_); + $_ = ''.&Apache::lonnet::gettitle($url).' '. + ''. + ''.$url.''. + '' } split(/\s*\,\s*/,$value)); } # Evaluations @@ -450,10 +452,10 @@ sub report_bombs { &Apache::lonmsg::all_url_author_res_msg($author,$domain); foreach (sort(keys(%brokenurls))) { if ($_=~/^\Q$uri\E/) { - $r->print(&Apache::lonhtmlcommon::crumbs - (&Apache::lonnet::clutter($_)). - &Apache::lonmsg::retrieve_author_res_msg($_). - '
'); + $r->print + (''.$_.''. + &Apache::lonmsg::retrieve_author_res_msg($_). + '
'); } } } else { @@ -541,35 +543,51 @@ $table ENDHEAD if ($ENV{'user.adv'}) { - &print_dynamic_metadata($r,$uri); + &print_dynamic_metadata($r,$uri,\%content); } return; } sub print_dynamic_metadata { - my ($r,$uri) = @_; + my ($r,$uri,$content) = @_; + # + my %content = %$content; + my %lt=&fieldnames(); # my $description = 'Dynamic Metadata (updated periodically)'; $r->print('

'.&mt($description).'

'. - &mt('Processing').' ...
'); + &mt('Processing')); $r->rflush(); my %items=&fieldnames(); my %dynmeta=&dynamicmeta($uri); # # General Access and Usage Statistics - $r->print('

'.&mt('Access and Usage Statistics').'

'. - ''); - foreach ('count', - 'sequsage','sequsage_list', - 'comefrom','comefrom_list', - 'goto','goto_list', - 'course','course_list') { - $r->print(''. - '\n"); + if (exists($dynmeta{'count'}) || + exists($dynmeta{'sequsage'}) || + exists($dynmeta{'comefrom'}) || + exists($dynmeta{'goto'}) || + exists($dynmeta{'course'})) { + $r->print('

'.&mt('Access and Usage Statistics').'

'. + '
'.$lt{$_}.''. - &prettyprint($_,$dynmeta{$_})."
'); + foreach ('count', + 'sequsage','sequsage_list', + 'comefrom','comefrom_list', + 'goto','goto_list', + 'course','course_list') { + $r->print(''. + '\n"); + } + $r->print('
'.$lt{$_}.''. + &prettyprint($_,$dynmeta{$_})."
'); + } else { + $r->print('

'.&mt('No Access or Usages Statistics are available for this resource.').'

'); } - $r->print(''); - if ($uri=~/\.(problem|exam|quiz|assess|survey|form)$/) { + # + # Assessment statistics + if ($uri=~/\.(problem|exam|quiz|assess|survey|form)$/ && + (exists($dynmeta{'stdno'}) || + exists($dynmeta{'avetries'}) || + exists($dynmeta{'difficulty'}))) { # This is an assessment, print assessment data $r->print( '

'.&mt('Assessment Statistical Data').'

'. @@ -580,28 +598,46 @@ sub print_dynamic_metadata { &prettyprint($_,$dynmeta{$_})."\n"); } $r->print(''); + } else { + $r->print('

'.&mt('No Assessment Statistical Data is available for this resource').'

'); } - - $r->print('

'.&mt('Evaluation Data').'

'. - ''); - foreach ('clear','depth','helpful','correct','technical') { - $r->print(''. - '\n"); + if (exists($dynmeta{'clear'}) || + exists($dynmeta{'depth'}) || + exists($dynmeta{'helpful'}) || + exists($dynmeta{'correct'}) || + exists($dynmeta{'technical'})){ + $r->print('

'.&mt('Evaluation Data').'

'. + '
'.$lt{$_}.''. - &prettyprint($_,$dynmeta{$_})."
'); + foreach ('clear','depth','helpful','correct','technical') { + $r->print(''. + '\n"); + } + $r->print('
'.$lt{$_}.''. + &prettyprint($_,$dynmeta{$_})."
'); + } else { + $r->print('

'.&mt('No Evaluation Data is available for this resource.').'

'); } - $r->print(''); $uri=~/^\/res\/(\w+)\/(\w+)\//; if ((($ENV{'user.domain'} eq $1) && ($ENV{'user.name'} eq $2)) || ($ENV{'user.role.ca./'.$1.'/'.$2})) { - $r->print('

'.&mt('Evaluation Comments').' ('. - &mt('visible to author and co-authors only'). - ')

'. - '
'.$dynmeta{'comments'}.'
'); - $r->print('

'.&mt('Error Messages').' ('. - &mt('visible to author and co-authors only').')'. - '

'. - &Apache::lonmsg::retrieve_author_res_msg($uri)); + if (exists($dynmeta{'comments'})) { + $r->print('

'.&mt('Evaluation Comments').' ('. + &mt('visible to author and co-authors only'). + ')

'. + '
'.$dynmeta{'comments'}.'
'); + } else { + $r->print('

'.&mt('There are no Evaluation Comments on this resource.').'

'); + } + my $bombs = &Apache::lonmsg::retrieve_author_res_msg($uri); + if (defined($bombs) && $bombs ne '') { + $r->print('

'.&mt('Error Messages').' ('. + &mt('visible to author and co-authors only').')'. + '

'.$bombs); + } else { + $r->print('

'.&mt('There are currently no Error Messages for this resource.').'

'); + } } + # # All other stuff $r->print('

'. &mt('Additional Metadata (non-standard, parameters, exports)'). @@ -747,30 +783,5 @@ ENDEDIT return; } -############################################################## -############################################################## -# MySQL table columns - -my @columns; - -BEGIN { - # Get columns of MySQL metadata table - @columns=&Apache::lonmysql::col_order('metadata'); -} - -# -# Turn MySQL row into hash -# This routine should be moved to lonmetadata -# a more generic place since it has nothing to do with metadata -sub metadata_col_to_hash { - my @cols=@_; - my %hash=(); - for (my $i=0; $i<=$#columns; $i++) { - $hash{$columns[$i]}=$cols[$i]; - } - return %hash; -} - - 1; __END__