--- loncom/homework/bridgetask.pm 2005/10/01 03:27:44 1.59 +++ loncom/homework/bridgetask.pm 2005/10/05 20:24:59 1.68 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.59 2005/10/01 03:27:44 albertel Exp $ +# $Id: bridgetask.pm,v 1.68 2005/10/05 20:24:59 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -294,6 +294,7 @@ sub show_task { ( $status eq 'INVALID_ACCESS') )) { return 0; } + if ($env{'form.donescreen'}) { return 0; } return 1; } @@ -302,6 +303,38 @@ sub internal_location { return ''; } +sub submission_time_stamp { + my ($symb,$courseid,$udom,$uname)=&Apache::lonxml::whichuser(); + my $submissiontime; + my $version=$Apache::lonhomework::history{'resource.version'}; + for (my $v=$Apache::lonhomework::history{'version'};$v>0;$v--) { + if (defined($Apache::lonhomework::history{$v.':resource.'.$version.'.0.bridgetask.portfiles'})) { + $submissiontime=$Apache::lonhomework::history{$v.':timestamp'}; + } + } + my $result; + if ($submissiontime) { + my $slot_name=$Apache::lonhomework::history{'resource.'.$version.'.checkedin.slot'}; + my %slot=&Apache::lonnet::get_slot($slot_name); + my $diff = $slot{'endtime'} - $submissiontime; + my ($color,$when)=('red','after'); + if ($diff > 0) { ($color,$when)=('green','before'); } + my $info; + if ($diff%60) { $info=($diff%60).' seconds'; } + $diff=int($diff/60); + if ($diff%60) { $info=($diff%60).' minutes '.$info; } + $diff=int($diff/60); + if ($diff) { $info=$diff.' hours '.$info; } + $result='
'. + &mt('Student submitted [_1] [_2] the deadline. + (Submission was at [_3], end of period was [_4].)', + $info,$when,scalar(localtime($submissiontime)), + scalar(localtime($slot{'endtime'}))). + '
'; + } + return $result; +} + sub start_Task { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; @@ -360,6 +393,18 @@ sub start_Task { ''.&proctor_validation_screen($slot); } elsif ($status eq 'WAITING_FOR_GRADE') { $msg.='Files submitted: $files
+You are now done with this Bridge Task
+Showing only sections '.join(', ',@chosen_sections). + '.
'."\n"; + } my $regexp="^$symb\0"; my %queue=&Apache::lonnet::dump($queue,$cdom,$cnum,$regexp); @@ -924,6 +994,11 @@ sub show_queue { ($action,$description)=('unlock',&mt('Unlock')); } } + my $seclist; + foreach my $sec (@chosen_sections) { + $seclist.=''; + } if (time > $slot_data{'endtime'}) { $result.=(< FORM @@ -1013,6 +1089,8 @@ sub queue_key_locked { sub pick_from_queue_data { my ($queue,$check_section,$queuedata,$cdom,$cnum)=@_; foreach my $key (keys(%$queuedata)) { + if ($key =~ /\0locked$/) { next; } + if ($key =~ /\0timestamp$/) { next; } my ($symb,$uname,$udom)=&decode_queue_key($key); if ($check_section) { my $section=&Apache::lonnet::getsection($uname,$udom); @@ -1138,13 +1216,19 @@ sub get_from_queue { sub select_user { my ($symb,$cid)=&Apache::lonxml::whichuser(); - my $result.=''.$fullname->{$student}. ' | ';
} else {
+ my $seclist;
+ foreach my $sec (@chosen_sections) {
+ $seclist.='';
+ }
$result.=<
@@ -1177,7 +1266,8 @@ sub select_user {
-
+
+ $seclist
| $fullname->{$student} |
@@ -1315,6 +1405,7 @@ sub get_instance {
$dim_info.=' | Question : you did not pass this '.$mandatory.' question'; } my $man_count=0; + my $man_passed=0; my $opt_count=0; my $opt_passed=0; foreach my $id (@{$dimension{$instance.'.criterias'}}) { @@ -1326,12 +1417,15 @@ sub get_instance { } } else { $man_count++; + if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"} eq 'pass') { + $man_passed++; + } } } - my $opt_req=&Apache::lonxml::get_param('OptionalRequired', - $parstack,$safeeval); + if ($man_passed eq $man_count) { $man_passed='all'; } + my $opt_req=$dimension{$instance.'.optionalrequired'}; if ($opt_req !~ /\S/) { $opt_req='0'; } - $dim_info.="\n".&mt('You passed all of the mandatory components and [_1] of the [_2] optional components, of which you were required to pass [_3].',$opt_passed,$opt_count,$opt_req)." \n"; + $dim_info.="\n".&mt('You passed [_1] of the [_2] mandatory components and [_3] of the [_4] optional components, of which you were required to pass [_5].',$man_passed,$man_count,$opt_passed,$opt_count,$opt_req)." \n"; my $internal_location=&internal_location($dim); $result=~s/\Q$internal_location\E/$dim_info/; |