--- loncom/interface/lonsearchcat.pm 2004/05/04 15:20:17 1.221
+++ loncom/interface/lonsearchcat.pm 2004/05/05 14:14:10 1.222
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Search Catalog
#
-# $Id: lonsearchcat.pm,v 1.221 2004/05/04 15:20:17 matthew Exp $
+# $Id: lonsearchcat.pm,v 1.222 2004/05/05 14:14:10 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -790,10 +790,13 @@ ENDHEADER
$scrout .= '
| '.&mt('Minimum').' | '.
''.&mt('Maximum').' |
'."\n";
foreach my $statistic
- ({ name=>'stdno',
- description=>'Number of Students',},
+ ({ name=>'count',
+ description=>'Network-wide number of accesses (hits)',},
+ { name=>'stdno',
+ description=>
+ 'Total number of students who have worked on this problem',},
{ name => 'avetries',
- description=>'Average tries to answer correctly',},
+ description=>'Average number of tries till solved',},
{ name => 'difficulty',
description=>'Degree of difficulty',},
{ name => 'disc',
@@ -1184,8 +1187,8 @@ sub parse_advanced_search {
'notes','abstract','extension','owner',
# 'custommetadata','customshow',
'modifyinguser','standards','mime');
- my @StatsFields = ('stdno','avetries','difficulty','disc');
- my @EvalFields = ('clear','depth','helpful','correct','technical');
+ my @StatsFields = &statfields();
+ my @EvalFields = &evalfields();
my $fillflag=0;
my $pretty_search_string = "
\n";
# Clean up fields for safety
@@ -1210,11 +1213,20 @@ sub parse_advanced_search {
ref($ENV{'form.category'}));
#
# Check to see if enough information was filled in
- for my $field (@BasicFields) {
+ foreach my $field (@BasicFields) {
if (&filled($ENV{'form.'.$field})) {
$fillflag++;
}
}
+ foreach my $field (@StatsFields,@EvalFields) {
+ if (&filled($ENV{'form.'.$field.'_max'})) {
+ $fillflag++;
+ }
+ if (&filled($ENV{'form.'.$field.'_min'})) {
+ $fillflag++;
+ }
+ }
+
for my $field ('lowestgradelevel','highestgradelevel') {
if ( $ENV{'form.'.$field} =~ /^\d+$/ &&
$ENV{'form.'.$field} > 0) {
@@ -2874,6 +2886,41 @@ sub detailed_citation_view {
######################################################################
######################################################################
+sub has_stat_data {
+ my ($values) = @_;
+ if ( (defined($values->{'count'}) && $values->{'count'} ne '') ||
+ (defined($values->{'stdno'}) && $values->{'stdno'} ne '') ||
+ (defined($values->{'disc'}) && $values->{'disc'} ne '') ||
+ (defined($values->{'avetries'}) && $values->{'avetries'} ne '') ||
+ (defined($values->{'difficulty'}) && $values->{'difficulty'} ne '')) {
+ return 1;
+ }
+ return 0;
+}
+
+sub statfields {
+ return ('count','stdno','disc','avetries','difficulty');
+}
+
+sub has_eval_data {
+ my ($values) = @_;
+ if ( (defined($values->{'clear'}) && $values->{'clear'} ne '') ||
+ (defined($values->{'technical'}) && $values->{'technical'} ne '') ||
+ (defined($values->{'correct'}) && $values->{'correct'} ne '') ||
+ (defined($values->{'helpful'}) && $values->{'helpful'} ne '') ||
+ (defined($values->{'depth'}) && $values->{'depth'} ne '')) {
+ return 1;
+ }
+ return 0;
+}
+
+sub evalfields {
+ return ('clear','technical','correct','helpful','depth');
+}
+
+######################################################################
+######################################################################
+
=pod
=item &summary_view()
@@ -2934,28 +2981,35 @@ END
sub fielded_format_view {
my ($prefix,%values) = @_;
my $icon=&Apache::loncommon::icon($values{'url'});
+ my %Translated = &Apache::lonmeta::fieldnames();
my $result=<
-URL: $values{'url'}
-
-Title: $values{'title'}
-Author(s): $values{'author'}
-Subject: $values{'subject'}
-Keyword(s): $values{'keywords'}
-Notes: $values{'notes'}
-MIME Type: $values{'mimetag'}
-Language: $values{'language'}
-Creation Date: $values{'creationdate'}
-Last Revision Date: $values{'lastrevisiondate'}
-Publisher/Owner: $values{'owner'}
-Copyright/Distribution: $values{'copyrighttag'}
-Repository Location: $values{'hostname'}
-Abstract: $values{'shortabstract'}
-$values{'extrashow'}
-
-
+
+- URL:
+ - $values{'url'}
END
+ foreach my $field ('title','author','subject','keywords','notes',
+ 'mimetag','language','creationdate','lastrevisiondate',
+ 'owner','copyrighttag','hostname','abstract') {
+ $result .= (' 'x4).'- '.$Translated{$field}.'
'."\n".
+ (' 'x8).'- '.$values{$field}.'
'."\n";
+ }
+ if (&has_stat_data(\%values)) {
+ foreach my $field (&statfields()) {
+ $result .= (' 'x4).'- '.$Translated{$field}.'
'."\n".
+ (' 'x8).'- '.$values{$field}.'
'."\n";
+ }
+ }
+ if (&has_eval_data(\%values)) {
+ foreach my $field (&evalfields()) {
+ $result .= (' 'x4).'- '.$Translated{$field}.'
'."\n".
+ (' 'x8).'- '.$values{$field}.'
'."\n";
+ }
+ }
+ $result .= "
\n";
+ $result .= $values{'extrashow'};
+ $result .= '
'."\n";
return $result;
}
@@ -2974,33 +3028,54 @@ END
######################################################################
sub xml_sgml_view {
my ($prefix,%values) = @_;
- my $xml = <
-$values{'url'}
-$values{'title'}
-$values{'author'}
-$values{'subject'}
-$values{'keywords'}
-$values{'notes'}
-
-$values{'mime'}
-$values{'mimetag'}
-
-
-$values{'language'}
-$values{'languagetag'}
-
-$values{'creationdate'}
-$values{'lastrevisiondate'}
-$values{'owner'}
-
-$values{'copyright'}
-$values{'copyrighttag'}
-
-$values{'hostname'}
-$values{'shortabstract'}
-
-END
+ my $xml = ''."\n";
+ # The usual suspects
+ foreach my $field ('url','title','author','subject','keywords','notes') {
+ $xml .= qq{<$field>$values{$field}$field>}."\n";
+ }
+ #
+ $xml .= "\n";
+ foreach my $field ('mime','mimetag') {
+ $xml .= qq{<$field>$values{$field}$field>}."\n";
+ }
+ $xml .= "\n";
+ #
+ $xml .= "\n";
+ foreach my $field ('language','languagetag') {
+ $xml .= qq{<$field>$values{$field}$field>}."\n";
+ }
+ $xml .= "\n";
+ #
+ foreach my $field ('creationdate','lastrevisiondate','owner') {
+ $xml .= qq{<$field>$values{$field}$field>}."\n";
+ }
+ #
+ $xml .= "\n";
+ foreach my $field ('copyright','copyrighttag') {
+ $xml .= qq{<$field>$values{$field}$field>}."\n";
+ }
+ $xml .= "\n";
+ $xml .= qq{$values{'hostname'}}.
+ "\n";
+ $xml .= qq{$values{'shortabstract'}}."\n";
+ #
+ if (&has_stat_data(\%values)){
+ $xml .= "\n";
+ foreach my $field (&statfields()) {
+ $xml .= qq{<$field>$values{$field}$field>}."\n";
+ }
+ $xml .= "\n";
+ }
+ #
+ if (&has_eval_data(\%values)) {
+ $xml .= "\n";
+ foreach my $field (&evalfields) {
+ $xml .= qq{<$field>$values{$field}$field>}."\n";
+ }
+ $xml .= "\n";
+ }
+ #
+ $xml .= "\n";
$xml = &HTML::Entities::encode($xml,'<>&');
my $result=<