--- loncom/interface/loncommon.pm 2002/06/24 19:06:05 1.38
+++ loncom/interface/loncommon.pm 2002/06/25 17:09:38 1.41
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.38 2002/06/24 19:06:05 albertel Exp $
+# $Id: loncommon.pm,v 1.41 2002/06/25 17:09:38 ng Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -85,7 +85,7 @@ my $readit;
my %language;
my %cprtag;
my %fe; my %fd;
-my %fc;
+my %category_extensions;
# -------------------------------------------------------------- Thesaurus data
my @therelated;
@@ -146,8 +146,8 @@ BEGIN {
while (<$fh>) {
next if /^\#/;
chomp;
- my ($key,$val)=(split(/\s+/,$_,2));
- push @{$fc{$key}},$val;
+ my ($extension,$category)=(split(/\s+/,$_,2));
+ push @{$category_extensions{lc($category)}},$extension;
}
}
}
@@ -215,14 +215,16 @@ linked_select_forms takes the following
=item $hashref, a reference to a hash containing the data for the menus.
+=back
+
Below is an example of such a hash. Only the 'text', 'default', and
'select2' keys must appear as stated. keys(%menu) are the possible
values for the first select menu. The text that coincides with the
-first menu values is given in $menu{$choice1}->{'text'}. The values
+first menu value is given in $menu{$choice1}->{'text'}. The values
and text for the second menu are given in the hash pointed to by
$menu{$choice1}->{'select2'}.
- my %menu = ( A1 => { text =>"Choice A1" ,
+my %menu = ( A1 => { text =>"Choice A1" ,
default => "B3",
select2 => {
B1 => "Choice B1",
@@ -741,12 +743,12 @@ sub copyrightdescription {
# ------------------------------------------------------------- File Categories
sub filecategories {
- return sort(keys(%fc));
+ return sort(keys(%category_extensions));
}
# -------------------------------------- File Types within a specified category
sub filecategorytypes {
- return @{$fc{lc(shift(@_))}};
+ return @{$category_extensions{lc($_[0])}};
}
# ------------------------------------------------------------------ File Types
@@ -770,8 +772,18 @@ sub filedescriptionex {
return '.'.$ex.' '.$fd{lc($ex)};
}
+# ---- Retrieve attempts by students
+# input
+# $symb - problem including path
+# $username,$domain - that of the student
+# $course - course name
+# $getattempt - leave blank if want all attempts, else put something.
+#
+# output
+# formatted as a table all the attempts, if any.
+#
sub get_previous_attempt {
- my ($symb,$username,$domain,$course)=@_;
+ my ($symb,$username,$domain,$course,$getattempt)=@_;
my $prevattempts='';
if ($symb) {
my (%returnhash)=
@@ -784,13 +796,14 @@ sub get_previous_attempt {
$lasthash{$_}=$returnhash{$version.':'.$_};
}
}
- $prevattempts='
History | ';
+ $prevattempts='';
+ $prevattempts.='History | ';
foreach (sort(keys %lasthash)) {
my ($ign,@parts) = split(/\./,$_);
if ($#parts > 0) {
my $data=$parts[-1];
pop(@parts);
- $prevattempts.='Part '.join('.',@parts).' '.$data.' | ';
+ $prevattempts.='Part '.join('.',@parts).' '.$data.' | ';
} else {
if ($#parts == 0) {
$prevattempts.=''.$parts[0].' | ';
@@ -799,19 +812,21 @@ sub get_previous_attempt {
}
}
}
- for ($version=1;$version<=$returnhash{'version'};$version++) {
- $prevattempts.='
---|
Attempt '.$version.' | ';
- foreach (sort(keys %lasthash)) {
- my $value;
- if ($_ =~ /timestamp/) {
- $value=scalar(localtime($returnhash{$version.':'.$_}));
- } else {
- $value=$returnhash{$version.':'.$_};
- }
- $prevattempts.=''.$value.' | ';
- }
+ if ($getattempt eq '') {
+ for ($version=1;$version<=$returnhash{'version'};$version++) {
+ $prevattempts.='
---|
Transaction '.$version.' | ';
+ foreach (sort(keys %lasthash)) {
+ my $value;
+ if ($_ =~ /timestamp/) {
+ $value=scalar(localtime($returnhash{$version.':'.$_}));
+ } else {
+ $value=$returnhash{$version.':'.$_};
+ }
+ $prevattempts.=''.$value.' | ';
+ }
+ }
}
- $prevattempts.=' Current | ';
+ $prevattempts.='
---|
Current | ';
foreach (sort(keys %lasthash)) {
my $value;
if ($_ =~ /timestamp/) {
@@ -819,9 +834,9 @@ sub get_previous_attempt {
} else {
$value=$lasthash{$_};
}
- $prevattempts.=''.$value.' | ';
+ $prevattempts.=''.$value.' | ';
}
- $prevattempts.=' ';
+ $prevattempts.=' |
';
} else {
$prevattempts='Nothing submitted - no attempts.';
}
@@ -930,8 +945,6 @@ sub add_to_env {
=pod
-=back
-
=head2 CSV Upload/Handling functions
=over 4