--- loncom/homework/lonhomework.pm 2004/04/16 19:10:27 1.173 +++ loncom/homework/lonhomework.pm 2004/10/18 18:08:54 1.182 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Homework handler # -# $Id: lonhomework.pm,v 1.173 2004/04/16 19:10:27 albertel Exp $ +# $Id: lonhomework.pm,v 1.182 2004/10/18 18:08:54 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -52,7 +52,7 @@ use Apache::Constants qw(:common); use HTML::Entities(); use Apache::loncommon(); use Apache::lonlocal; -#use Time::HiRes qw( gettimeofday tv_interval ); +use Time::HiRes qw( gettimeofday tv_interval ); BEGIN { &Apache::lonxml::register_insert(); @@ -207,11 +207,11 @@ sub check_access { if ( ! ($ENV{'form.problemstate'} eq 'CANNOT_ANSWER_correct' && lc($Apache::lonhomework::problemstatus) eq 'no')) { return ('CANNOT_ANSWER', - &mt('is in this state by royal decree.')); + &mt('is in this state due to author settings.')); } } else { return ($ENV{'form.problemstate'}, - &mt('is in this state by royal decree.')); + &mt('is in this state due to author settings.')); } } &Apache::lonxml::debug("in construction ignoring dates"); @@ -292,7 +292,26 @@ sub check_access { $status = 'CANNOT_ANSWER'; } } - + if ($status eq 'CAN_ANSWER' || $status eq 'CANNOT_ANSWER') { + my $interval=&Apache::lonnet::EXT("resource.$id.interval"); + &Apache::lonxml::debug("looking for interval $interval"); + if ($interval) { + my $first_access=&Apache::lonnet::get_first_access('map'); + &Apache::lonxml::debug("looking for accesstime $first_access"); + if (!$first_access) { + $status='NOT_YET_VIEWED'; + $datemsg=' '.$interval.' seconds'; + } else { + my $newdate=localtime($first_access+$interval); + if (time > ($first_access+$interval)) { + $status='CLOSED'; + $datemsg = &mt("was due on")." $newdate".&mt(", and answers will be available on")." $date"; + } else { + $datemsg = &mt("is due at")." $newdate"; + } + } + } + } #if (($status ne 'CLOSED') && ($Apache::lonhomework::type eq 'exam') && # (!$Apache::lonhomework::history{"resource.0.outtoken"})) { # return ('UNCHECKEDOUT','needs to be checked out'); @@ -434,13 +453,13 @@ sub analyze_header {