[LON-CAPA-cvs] cvs: loncom /homework lonhomework.pm

albertel lon-capa-cvs@mail.lon-capa.org
Fri, 13 Feb 2004 21:21:30 -0000


albertel		Fri Feb 13 16:21:30 2004 EDT

  Modified files:              
    /loncom/homework	lonhomework.pm 
  Log:
  - constructions space, can now go into 'CANNOT_ANSWER' mode
  
  
Index: loncom/homework/lonhomework.pm
diff -u loncom/homework/lonhomework.pm:1.162 loncom/homework/lonhomework.pm:1.163
--- loncom/homework/lonhomework.pm:1.162	Thu Jan 29 13:51:28 2004
+++ loncom/homework/lonhomework.pm	Fri Feb 13 16:21:30 2004
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Homework handler
 #
-# $Id: lonhomework.pm,v 1.162 2004/01/29 18:51:28 albertel Exp $
+# $Id: lonhomework.pm,v 1.163 2004/02/13 21:21:30 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -204,61 +204,63 @@
 	&Apache::lonxml::debug("in construction ignoring dates");
 	$status='CAN_ANSWER';
 	$datemsg=&mt('is in under construction');
-	return ($status,$datemsg);
+#	return ($status,$datemsg);
     }
 
     &Apache::lonxml::debug("checking for part :$id:");
     &Apache::lonxml::debug("time:".time);
-    
-    my $allowed=&check_ip_acc(&Apache::lonnet::EXT("resource.$id.acc"));
-    if (!$allowed && ($Apache::lonhomework::browse ne 'F')) {
-	$status='INVALID_ACCESS';
-	$date=&mt("can not be accessed from your location.");
-	return($status,$date);
-    }
 
-    foreach $temp ("opendate","duedate","answerdate") {
-	$lastdate = $date;
-	$date = &Apache::lonnet::EXT("resource.$id.$temp");
-	my $thistype = &Apache::lonnet::EXT("resource.$id.$temp.type");
-	if ($thistype =~ /^(con_lost|no_such_host)/ ||
-	    $date     =~ /^(con_lost|no_such_host)/) {
-	    $status='UNAVAILABLE';
-	    $date=&mt("may open later.");
+    if ($ENV{'request.state'} ne "construct") {
+	my $allowed=&check_ip_acc(&Apache::lonnet::EXT("resource.$id.acc"));
+	if (!$allowed && ($Apache::lonhomework::browse ne 'F')) {
+	    $status='INVALID_ACCESS';
+	    $date=&mt("can not be accessed from your location.");
 	    return($status,$date);
 	}
-	if ($thistype eq 'date_interval') {
-	    if ($temp eq 'opendate') {
-		$date=&Apache::lonnet::EXT("resource.$id.duedate")-$date;
+	
+	foreach $temp ("opendate","duedate","answerdate") {
+	    $lastdate = $date;
+	    $date = &Apache::lonnet::EXT("resource.$id.$temp");
+	    my $thistype = &Apache::lonnet::EXT("resource.$id.$temp.type");
+	    if ($thistype =~ /^(con_lost|no_such_host)/ ||
+		$date     =~ /^(con_lost|no_such_host)/) {
+		$status='UNAVAILABLE';
+		$date=&mt("may open later.");
+		return($status,$date);
+	    }
+	    if ($thistype eq 'date_interval') {
+		if ($temp eq 'opendate') {
+		    $date=&Apache::lonnet::EXT("resource.$id.duedate")-$date;
+		}
+		if ($temp eq 'answerdate') {
+		    $date=&Apache::lonnet::EXT("resource.$id.duedate")+$date;
+		}
 	    }
-	    if ($temp eq 'answerdate') {
-		$date=&Apache::lonnet::EXT("resource.$id.duedate")+$date;
+	    &Apache::lonxml::debug("found :$date: for :$temp:");
+	    if ($date eq '') {
+		$date = &mt("an unknown date"); $passed = 0;
+	    } elsif ($date eq 'con_lost') {
+		$date = &mt("an indeterminate date"); $passed = 0;
+	    } else {
+		if (time < $date) { $passed = 0; } else { $passed = 1; }
+		$date = localtime $date;
 	    }
+	    if (!$passed) { $type=$temp; last; }
 	}
-	&Apache::lonxml::debug("found :$date: for :$temp:");
-	if ($date eq '') {
-	    $date = &mt("an unknown date"); $passed = 0;
-	} elsif ($date eq 'con_lost') {
-	    $date = &mt("an indeterminate date"); $passed = 0;
-	} else {
-	    if (time < $date) { $passed = 0; } else { $passed = 1; }
-	    $date = localtime $date;
+	&Apache::lonxml::debug("have :$type:$passed:");
+	if ($passed) {
+	    $status='SHOW_ANSWER';
+	    $datemsg=$date;
+	} elsif ($type eq 'opendate') {
+	    $status='CLOSED';
+	    $datemsg = &mt("will open on")." $date";
+	} elsif ($type eq 'duedate') {
+	    $status='CAN_ANSWER';
+	    $datemsg = &mt("is due at")." $date";
+	} elsif ($type eq 'answerdate') {
+	    $status='CLOSED';
+	    $datemsg = &mt("was due on")." $lastdate".&mt(", and answers will be available on")." $date";
 	}
-	if (!$passed) { $type=$temp; last; }
-    }
-    &Apache::lonxml::debug("have :$type:$passed:");
-    if ($passed) {
-	$status='SHOW_ANSWER';
-	$datemsg=$date;
-    } elsif ($type eq 'opendate') {
-	$status='CLOSED';
-	$datemsg = &mt("will open on")." $date";
-    } elsif ($type eq 'duedate') {
-	$status='CAN_ANSWER';
-	$datemsg = &mt("is due at")." $date";
-    } elsif ($type eq 'answerdate') {
-	$status='CLOSED';
-	$datemsg = &mt("was due on")." $lastdate".&mt(", and answers will be available on")." $date";
     }
     if ($status eq 'CAN_ANSWER') {
 	#check #tries, and if correct.