--- loncom/homework/structuretags.pm 2011/12/27 19:48:31 1.497.2.6 +++ loncom/homework/structuretags.pm 2013/05/12 13:36:53 1.512.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.497.2.6 2011/12/27 19:48:31 foxr Exp $ +# $Id: structuretags.pm,v 1.512.2.2 2013/05/12 13:36:53 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -453,7 +453,6 @@ sub page_start { } $form_tag_start.='>'."\n"; - my $symb=&Apache::lonnet::symbread(); if ($symb =~ /\S/) { $symb= &HTML::Entities::encode(&Apache::lonenc::check_encrypt($symb)); @@ -990,19 +989,19 @@ sub firstaccess_msg { my $foldertitle=&Apache::lonnet::gettitle($map); &Apache::lonxml::debug("map is $map title is $foldertitle"); - $result .= "
'.&mt('Once you click the "Show Resource" button below you have [_2] to complete all resources "[_1]".' + ,$foldertitle,$time)."
"; } elsif ($interval[1] eq 'course') { my $course = $env{'course.'.$env{'request.course.id'}.'.description'}; - $result .= "'.&mt('Once you click the "Show Resource" button below you have [_2] to complete all resources "[_1]".' + ,$course,$time)."
"; } else { my $title=&Apache::lonnet::gettitle($symb); - $result .= "'.&mt('Once you click the "Show Resource" button below you have [_2] to complete this resource "[_1]".' + ,$title,$time)."
"; } my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); my $buttontext = &mt('Show Resource'); @@ -1060,6 +1059,9 @@ sub reset_problem_globals { undef(%Apache::lonhomework::history); undef(%Apache::lonhomework::results); undef($Apache::inputtags::part); + if ($type eq 'Task') { + undef($Apache::inputtags::slot_name); + } #don't undef this, lonhomework.pm takes care of this, we use this to #detect if we try to do 2 problems in one file # undef($Apache::lonhomework::parsing_a_problem); @@ -1157,9 +1159,23 @@ sub start_problem { &Apache::run::run($expression,$safeeval); my $status; my $accessmsg; + my $resource_due; my $name= &get_resource_name($parstack,$safeeval); - my ($result,$form_tag_start); + my ($result,$form_tag_start,$slot_name,$slot); + + if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || + $target eq 'tex') { + if ($env{'form.markaccess'}) { + my @interval=&Apache::lonnet::EXT("resource.0.interval"); + &Apache::lonnet::set_first_access($interval[1]); + } + + ($status,$accessmsg,$slot_name,$slot) = + &Apache::lonhomework::check_slot_access('0','problem'); + push (@Apache::inputtags::status,$status); + } + if ($target eq 'web' || $target eq 'webgrade' || $target eq 'tex' || $target eq 'edit') { ($result,$form_tag_start) = @@ -1172,14 +1188,6 @@ sub start_problem { if ($target eq 'analyze') { my $rndseed=&setup_rndseed($safeeval,$target); } if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') { - if ($env{'form.markaccess'}) { - my @interval=&Apache::lonnet::EXT("resource.0.interval"); - &Apache::lonnet::set_first_access($interval[1]); - } - - ($status,$accessmsg,my $slot_name,my $slot) = - &Apache::lonhomework::check_slot_access('0','problem'); - push (@Apache::inputtags::status,$status); #handle rand seed in construction space my $rndseed=&setup_rndseed($safeeval,$target); @@ -1229,18 +1237,24 @@ sub start_problem { ( $status eq 'BANNED') || ( $status eq 'UNAVAILABLE') || ( $status eq 'NOT_IN_A_SLOT') || + ( $status eq 'NOTRESERVABLE') || + ( $status eq 'RESERVABLE') || + ( $status eq 'RESERVABLE_LATER') || ( $status eq 'INVALID_ACCESS')) { my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser, $style); if ( $target eq "web" ) { my $msg; if ($status eq 'UNAVAILABLE') { - $msg.=''.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'
'; } elsif ($status eq 'NOT_IN_A_SLOT') { - $msg.=''.&mt('You are not currently signed up to work at this time and/or place.').'
'; + } elsif (($status eq 'RESERVABLE') || ($status eq 'RESERVABLE_LATER') || + ($status eq 'NOTRESERVABLE')) { + $msg.=''.&mt('Access requires reservation to work at specific time/place.').'
'; } elsif ($status ne 'NOT_YET_VIEWED') { - $msg.=''.&mt('Not open to be viewed').'
'; + } if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') { $msg.=&mt('The problem ').$accessmsg; } elsif ($status eq 'UNCHECKEDOUT') { @@ -1249,6 +1263,16 @@ sub start_problem { $msg.=&firstaccess_msg($accessmsg,$symb); } elsif ($status eq 'NOT_IN_A_SLOT') { $msg.=&Apache::bridgetask::add_request_another_attempt_button("Sign up for time to work"); + } elsif ($status eq 'RESERVABLE') { + $msg.=&mt('Available to make a reservation.').' '.&mt('Reservation window closes [_1].', + &Apache::lonnavmaps::timeToHumanString($accessmsg,'end')). + '