--- loncom/homework/lonhomework.pm 2015/01/27 08:40:41 1.348 +++ loncom/homework/lonhomework.pm 2015/04/14 21:35:56 1.349.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Homework handler # -# $Id: lonhomework.pm,v 1.348 2015/01/27 08:40:41 droeschl Exp $ +# $Id: lonhomework.pm,v 1.349.2.2 2015/04/14 21:35:56 musolffc Exp $ # # Copyright Michigan State University Board of Trustees # @@ -469,7 +469,6 @@ sub check_access { if ( $tries eq '' ) { $tries = '0'; } if ( $maxtries eq '' && $env{'request.state'} ne 'construct') { $maxtries = '2'; } - $Apache::lonhomework::results{'resource.'.$id.'.maxtries'}=$maxtries; if ($maxtries && $tries >= $maxtries) { $status = 'CANNOT_ANSWER'; } # if (correct and show prob status) or excused then CANNOT_ANSWER if ( ($Apache::lonhomework::history{"resource.$id.solved"}=~/^correct/) @@ -1332,10 +1331,30 @@ sub update_construct_style { } } +# Sets timer to zero for the entire folder containing the current resource for the +# current user. +sub zero_timer { + my $symb = shift; + my $first_access = &Apache::lonnet::get_first_access("map",$symb); + my $done_time = time() - $first_access; + &Apache::lonparmset::storeparm_by_symb($symb,"0_interval","2",$done_time, + "date_interval",$env{'user.name'},$env{'user.domain'},,'',); +} + sub handler { #my $t0 = [&gettimeofday()]; my $request=$_[0]; + + my ($symb) = &Apache::lonnet::whichuser(); + + # Set the event timer to zero if the "done button" was clicked. The button is + # part of the doneButton form created in lonmenu.pm + if ($env{"form.done"} eq "true") { + &zero_timer($symb); + $env{"form.done"} = ""; + } + $Apache::lonxml::request=$request; $Apache::lonxml::debug=$env{'user.debug'}; $env{'request.uri'}=$request->uri; @@ -1360,7 +1379,6 @@ sub handler { } &Apache::lonxml::debug("Permissions:$Apache::lonhomework::browse:$Apache::lonhomework::viewgrades:$Apache::lonhomework::modifygrades:$Apache::lonhomework::queuegrade"); &Apache::lonxml::debug("Problem Mode ".$env{'form.problemmode'}); - my ($symb) = &Apache::lonnet::whichuser(); &Apache::lonxml::debug('symb is '.$symb); if ($env{'request.state'} eq "construct") { if ( -e $file ) {