[LON-CAPA-cvs] cvs: loncom /interface groupsort.pm

www lon-capa-cvs@mail.lon-capa.org
Fri, 24 May 2002 13:53:43 -0000


www		Fri May 24 09:53:43 2002 EDT

  Modified files:              
    /loncom/interface	groupsort.pm 
  Log:
  Expand to import from lonsequence
  
  
Index: loncom/interface/groupsort.pm
diff -u loncom/interface/groupsort.pm:1.10 loncom/interface/groupsort.pm:1.11
--- loncom/interface/groupsort.pm:1.10	Mon May 13 12:00:53 2002
+++ loncom/interface/groupsort.pm	Fri May 24 09:53:43 2002
@@ -2,7 +2,7 @@
 # The LON-CAPA group sort handler
 # Allows for sorting prior to import into RAT.
 #
-# $Id: groupsort.pm,v 1.10 2002/05/13 16:00:53 www Exp $
+# $Id: groupsort.pm,v 1.11 2002/05/24 13:53:43 www Exp $
 # 
 # Copyright Michigan State University Board of Trustees
 #
@@ -142,6 +142,7 @@
     my %thash; # title (key is resource location, value is title)
 
     my $diropendb;
+# ------------------------------ which file do we open? Easy if explictly given
     if ($ENV{'form.catalogmode'} eq 'groupsearch') {
 	$diropendb = 
 	    "/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_searchcat.db";
@@ -150,29 +151,49 @@
 	$diropendb = 
 	    "/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_indexer.db";
     }
+    elsif ($ENV{'form.catalogmode'} eq 'groupsec') {
+	$diropendb = 
+	    "/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_groupsec.db";
+    }
+# --------------------- not explicitly given, choose the one most recently used
     else { # choose last accessed
-	my $dsearch; my $dindex;
-	my $dsearcht; my $dindext;
-	$dsearch =
+        my @dbfn;
+        my @dbst;
+
+	$dbfn[0] =
 	    "/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_searchcat.db";
-	if (-e $dsearch) {
-	    $dsearcht=(stat($dsearch))[9];
+        $dbst[0]=-1;
+	if (-e $dbfn[0]) {
+	    $dbst[0]=(stat($dbfn[0]))[9];
 	}
-	$dindex =
+	$dbfn[1] =
             "/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_indexer.db";
-	if (-e $dindex) {
-            $dindext=(stat($dindex))[9];
+        $dbst[1]=-1;
+	if (-e $dbfn[1]) {
+            $dbst[1]=(stat($dbfn[1]))[9];
         }
-	if (!$dsearcht and !$dindext) {
-	    $diropendb='';
-	}
-        elsif ($dsearcht>$dindext) {
-            $diropendb=$dsearch;
+	$dbfn[2] =
+            "/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_groupsec.db";
+        $dbst[2]=-1;
+	if (-e $dbfn[2]) {
+            $dbst[2]=(stat($dbfn[2]))[9];
         }
-	else {
-            $diropendb=$dindex;
-	}
+# Expand here for more modes
+# ....
+
+# Okay, find most recent existing
+
+        my $newest=0;
+        my $diropendb='';
+        for (my $i=0; $i<=$#dbfn; $i++) {
+	    if ($dbst[$i]>$newest) {
+		$newest=$dbst[$i];
+                $diropendb=$dbfn[$i];
+            }
+        }
+
     }
+# ----------------------------- diropendb is now the filename of the db to open
     if (tie(%hash,'GDBM_File',$diropendb,&GDBM_WRCREAT,0640)) {
 	my $acts = $ENV{'form.acts'};
 	my @Acts = split(/b/,$acts);
@@ -274,6 +295,8 @@
 <input type="hidden" name="oldval" value="" />
 <input type="hidden" name="newval" value="" />
 END
+
+# --- Expand here if "GO BACK" button desired
     if ($ENV{'form.catalogmode'} eq 'groupimport') {
 	$r->print(<<END);
 <input type="button" name="alter" value="GO BACK"
@@ -286,6 +309,8 @@
  onClick="window.location='/adm/searchcat?catalogmode=groupsearch'" />&nbsp;
 END
 }
+# ---
+
     $r->print(<<END);
 <input type="button" name="alter" value="FINISH IMPORT"
  onClick="finish_import()" />&nbsp;