--- loncom/interface/courseclassifier.pm 2009/07/29 22:32:44 1.8
+++ loncom/interface/courseclassifier.pm 2010/07/08 23:19:19 1.9
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Utilities for classifying courses based on institutional code
#
-# $Id: courseclassifier.pm,v 1.8 2009/07/29 22:32:44 raeburn Exp $
+# $Id: courseclassifier.pm,v 1.9 2010/07/08 23:19:19 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -545,6 +545,7 @@ function setElements() {
sub build_instcode_selectors {
my ($numtitles,$lasttitle,$cat_items,$codetitles,$cat_titles,$cat_order) = @_;
my $output;
+ my @standardnames = &get_standard_codeitems();
if ($numtitles > 0) {
$output .= '
';
for (my $k=0; $k<$lasttitle-1; $k++) {
@@ -562,8 +563,8 @@ sub build_instcode_selectors {
@longitems = @items;
}
$output .= ''.$codetitles->[$k].' '."\n".
- ' | ';
}
$output .= ''.$codetitles->[$lasttitle-1].' '."\n".
- ''."\n".
+ ''."\n".
''."\n".''."\n".
' |
'."\n";
if ($numtitles > 4) {
$output .= '
'.$codetitles->[$numtitles-1].'
'."\n".
- '
'."\n";
}
$output .= '
';
@@ -811,7 +812,7 @@ END
}
sub instcode_search_str {
- my ($domain,$numtitles) = @_;
+ my ($domain,$numtitles,$codetitles) = @_;
my $instcode;
if (defined($numtitles) && $numtitles == 0) {
$instcode = '.+';
@@ -820,13 +821,25 @@ sub instcode_search_str {
my $defaults_result =
&Apache::lonnet::auto_instcode_defaults($domain,\%codedefaults,
\@code_order);
+ my @standardnames = &get_standard_codeitems();
+ my %local_to_standard;
+ if (ref($codetitles) eq 'ARRAY') {
+ for (my $i=0; $i<@{$codetitles}; $i++) {
+ $local_to_standard{$codetitles->[$i]} = $standardnames[$i];
+ }
+ }
if ($defaults_result eq 'ok') {
$instcode ='^';
- foreach my $item (@code_order) {
- if ($env{'form.'.$item} eq '0' ) {
- $instcode .= $codedefaults{$item};
+ foreach my $loctitle (@code_order) {
+ my $item = $local_to_standard{$loctitle};
+ if ($item ne '') {
+ if ($env{'form.'.$item} eq '0' ) {
+ $instcode .= $codedefaults{$item};
+ } else {
+ $instcode .= $env{'form.'.$item};
+ }
} else {
- $instcode .= $env{'form.'.$item};
+ $instcode .= '.+';
}
}
$instcode .= '$';
@@ -837,5 +850,9 @@ sub instcode_search_str {
return $instcode;
}
+sub get_standard_codeitems {
+ return ('Year','Semester','Department','Number');
+}
+
1;