--- loncom/homework/bridgetask.pm 2006/01/21 08:27:09 1.97 +++ loncom/homework/bridgetask.pm 2006/02/08 22:04:34 1.102 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.97 2006/01/21 08:27:09 albertel Exp $ +# $Id: bridgetask.pm,v 1.102 2006/02/08 22:04:34 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -777,7 +777,7 @@ DONEBUTTON my $opt_req=&Apache::lonxml::get_param('OptionalRequired', $parstack,$safeeval); if ($opt_req !~ /\S/) { $opt_req='0'; } - $status.="\n

".&mt('You needed to pass all of the [_1] mandatory components and [_2] of the [_3] optional components, of which you were required to pass [_4] on the bridge task.',$man_count,$opt_passed,$opt_count,$opt_req)."

\n"; + $status.="\n

".&mt('You needed to pass all of the [_1] mandatory components and [_2] of the [_3] optional components, of which you passed [_4].',$man_count,$opt_req,$opt_count,$opt_passed)."

\n"; my $internal_location=&internal_location(); $result=~s/\Q$internal_location\E/$status/; @@ -1231,6 +1231,7 @@ sub queue_key_locked { sub pick_from_queue_data { my ($queue,$check_section,$queuedata,$cdom,$cnum)=@_; + my @possible; # will hold queue entries that are valid to be selected foreach my $key (keys(%$queuedata)) { if ($key =~ /\0locked$/) { next; } if ($key =~ /\0timestamp$/) { next; } @@ -1248,11 +1249,18 @@ sub pick_from_queue_data { &Apache::lonxml::debug("not time"); next; } - if (&queue_key_locked($queue,$key,$cdom,$cnum)) { + if (exists($queuedata->{"$key\0locked"})) { &Apache::lonxml::debug("someone already has um."); next; } - return $key; + push(@possible,[$key,$slot_data{'endtime'}]); + } + if (@possible) { + # sort entries in order by slot end time + @possible = sort { $a->[1] <=> $b->[1] } @possible; + # pick one of the first ten entries + my $max=($#possible < 10) ? $#possible : 10; + return $possible[int(rand($max))][0]; } return undef; } @@ -1336,7 +1344,7 @@ sub get_from_queue { my $regexp="^$symb\0queue\0"; my $range= ($attempts < 1 ) ? '0-100' : '0-400'; - my %queue=&Apache::lonnet::dump($queue,$cdom,$cnum,$regexp,$range); + my %queue=&Apache::lonnet::dump($queue,$cdom,$cnum,$regexp); #make a pass looking for a user _not_ in my section if ($env{'request.course.sec'}) { &Apache::lonxml::debug("sce"); @@ -1348,8 +1356,7 @@ sub get_from_queue { # ready for grading if (!$todo) { &Apache::lonxml::debug("no sce"); - $todo=&pick_from_queue_data($queue,$env{'request.course.sec'}, - \%queue,$cdom,$cnum); + $todo=&pick_from_queue_data($queue,undef,\%queue,$cdom,$cnum); &Apache::lonxml::debug("no sce $todo"); } # no user to grade @@ -1436,10 +1443,12 @@ sub select_user { $seclist.=''; } + my $studentdis = $student; + $studentdis =~ tr/:/@/; $result.=< -
+ @@ -1447,7 +1456,7 @@ sub select_user { $seclist
- $fullname->{$student} + $fullname->{$student} ($studentdis) RESULT } @@ -1467,6 +1476,9 @@ RESULT if ($status{'version'}) { $result .= ' '.&mt('Version').' '.$status{'version'}; } + if ($status{'grader'}) { + $result .= ' '.&mt('(Graded by [_1])',$status{'grader'}).' '; + } $result.= ''; if ($status{'reviewqueue'} eq 'enqueued') { $result .= &mt('Awaiting Review'); @@ -1670,7 +1682,7 @@ sub get_instance { $result.=&Apache::scripttag::xmlparse($dimension{$instance.'.criteria.'.$id}); $result.='

'.$status_display.'

'; if ($Apache::lonhomework::history{"resource.$version.0.$dim.$instance.$id.comment"}) { - $result.='

'.$Apache::lonhomework::history{"resource.$version.0.$dim.$instance.$id.comment"}.'

'; + $result.='

'.&mt('Comment: [_1]',$Apache::lonhomework::history{"resource.$version.0.$dim.$instance.$id.comment"}).'

'; } $result.=''; }