--- loncom/homework/bridgetask.pm 2006/06/24 01:28:17 1.179 +++ loncom/homework/bridgetask.pm 2006/07/17 20:35:11 1.181 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.179 2006/06/24 01:28:17 albertel Exp $ +# $Id: bridgetask.pm,v 1.181 2006/07/17 20:35:11 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -152,11 +152,14 @@ sub create_new_version { } elsif ($type eq 'problem') { &Apache::lonxml::debug("authed $slot_name"); } - - if (defined($user) && defined($domain)) { - $Apache::lonhomework::results{"resource.$id.checkedin"}= - $user.':'.$domain; + if (!defined($user) || !defined($domain)) { + $user = $env{'user.name'}; + $domain = $env{'user.domain'}; } + + $Apache::lonhomework::results{"resource.$id.checkedin"}= + $user.':'.$domain; + if (defined($slot_name)) { $Apache::lonhomework::results{"resource.$id.checkedin.slot"}= $slot_name; @@ -372,6 +375,8 @@ sub nested_parse { @Apache::scripttag::parser_env = @old_env; if ($args->{'delayed_dim_results'}) { my $dim = &get_dim_id(); + &Apache::lonxml::debug(" tossing out $result "); + &Apache::lonxml::debug(" usining out $dim 's ". $dimension{$dim}{'result'}); return $dimension{$dim}{'result'}; } return $result; @@ -1058,6 +1063,17 @@ DONEBUTTON &Apache::loncommon::end_page({'discussion' => 1}); } } + + my $useslots = &Apache::lonnet::EXT("resource.0.useslots"); + my %queue_data = ('type' => 'Task', + 'time' => time,); + if (defined($Apache::inputtags::slot_name)) { + $queue_data{'slot'} = $Apache::inputtags::slot_name; + } elsif (defined($Apache::lonhomework::history{"resource.$version.0.checkedin.slot"})) { + $queue_data{'slot'} = $Apache::lonhomework::history{"resource.$version.0.checkedin.slot"}; + } + + if ($target eq 'grade' && !$env{'form.webgrade'} && !$previous) { my $award='SUBMITTED'; &Apache::essayresponse::file_submission("$version.0",'bridgetask', @@ -1080,17 +1096,7 @@ DONEBUTTON &Apache::lonhomework::showhash(%Apache::lonhomework::results); &Apache::structuretags::finalize_storage(); if ($award eq 'SUBMITTED') { - my $useslots = &Apache::lonnet::EXT("resource.0.useslots"); - if ($useslots =~ /^\s*no\s*$/i) { - &add_to_queue('gradingqueue', - {'type' => 'Task', - 'time' => time}); - } elsif (defined($Apache::inputtags::slot_name)) { - &add_to_queue('gradingqueue', - {'type' => 'Task', - 'time' => time, - 'slot' => $Apache::inputtags::slot_name}); - } + &add_to_queue('gradingqueue',\%queue_data); } } elsif ($Apache::lonhomework::results{'INTERNAL_store'}) { &Apache::structuretags::finalize_storage(); @@ -1138,14 +1144,20 @@ DONEBUTTON &check_queue_unlock($env{'form.queue'}); &Apache::lonxml::debug(" still needs review not changing status."); } else { - &move_between_queues($env{'form.queue'},'reviewqueue'); + if ($env{'form.queue'} ne 'none') { + &move_between_queues($env{'form.queue'},'reviewqueue'); + } else { + &add_to_queue('reviewqueue',\%queue_data); + } } } elsif ($ungraded) { $Apache::lonhomework::results{"resource.$version.0.status"}='ungraded'; - if ($env{'form.queue'} eq 'reviewqueue' || - $env{'form.queue'} eq 'none' ) { + if ($env{'form.queue'} eq 'reviewqueue') { &Apache::lonxml::debug("moving back."); - &move_between_queues($env{'form.queue'},'gradingqueue'); + &move_between_queues($env{'form.queue'}, + 'gradingqueue'); + } elsif ($env{'form.queue'} eq 'none' ) { + &add_to_queue('gradingqueue',\%queue_data); } else { &check_queue_unlock($env{'form.queue'}); } @@ -2221,8 +2233,8 @@ sub get_criteria { &nested_parse(\$dimension{$dim}{$instance.'.text'},[@_]); $result.= &nested_parse(\$dimension{$dim}{'questiontext'},[@_], - {'set_dim_id' => undef, - 'delay_dim_results' => 1}); + {'set_dim_id' => undef, + 'delayed_dim_results' => 1}); foreach my $id (@{$dimension{$dim}{$instance.'.criterias'}}, @{$dimension{$dim}{'criterias'}} ) { my $type = $dimension{$dim}{'criteria.'.$id.'.type'}; @@ -2259,7 +2271,7 @@ sub get_criteria { $result.=&grading_history($version,$dim,$id); $last_link=$link; } - if (&delay_result()) { + if (&nest()) { &Apache::lonxml::debug(" for $dim stashing results into ".$dimension{$dim}{'nested'}); $dimension{$dimension{$dim}{'nested'}}{'result'}.=$result; undef($result);