--- loncom/homework/bridgetask.pm 2005/10/01 03:27:44 1.59 +++ loncom/homework/bridgetask.pm 2005/10/01 04:52:21 1.64 @@ -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.64 2005/10/01 04:52:21 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.='

'.&mt('Your submission is in the grading queue.').'

'; + } elsif ($env{'form.donescreen'}) { + my $title=&Apache::lonnet::gettitle(); + my $files=$Apache::lonhomework::history{'resource.'.$version.'.0.bridgetask.portfiles'}; + $result.= $head_tag_start.''.$body_tag_start; + $result.=<$title +

Files submitted: $files

+

You are now done with the Bridge Task

+
+

Logout

+

Change to a different course

+DONESCREEN } elsif ($status ne 'NOT_YET_VIEWED') { $msg.='

'.&mt('Not open to be viewed').'

'; } @@ -446,6 +491,9 @@ sub start_Task { my $bodytext=&Apache::lonxml::get_all_text("/task",$parser); } if ($target eq 'webgrade' && defined($env{'form.queue'})) { + if ($webgrade eq 'yes') { + $result.=&submission_time_stamp(); + } $result.=$form_tag_start; $result.=''; @@ -455,6 +503,14 @@ sub start_Task { $result.=''; } + if ($env{'form.chosensections'}) { + my @chosen_sections= + &Apache::loncommon::get_env_multiple('form.chosensections'); + foreach my $sec (@chosen_sections) { + $result.=''; + } + } } } else { # page_start returned a starting result, delete it if we don't need it @@ -570,7 +626,8 @@ sub end_Task { if (&show_task($status,$previous)) { $result.=&Apache::lonxml::endredirection(); } - if ($status eq 'CAN_ANSWER' && !$previous) { + if ($status eq 'CAN_ANSWER' && !$previous && + !$env{'form.donescreen'}) { $result.="\n".''. &Apache::inputtags::file_selector("$version.0", "bridgetask","*", @@ -580,6 +637,13 @@ sub end_Task {

'.&mt('Indicate the files from your portfolio to be evaluated in grading this task.').'

'). "
"; $result.=&Apache::inputtags::gradestatus('0'); + $result.=''; + $result.=< + + + +DONEBUTTON } if (&show_task($status,$previous) && $Apache::lonhomework::history{"resource.$version.status"} =~ /^(pass|fail)$/) { @@ -645,6 +709,8 @@ sub end_Task { $award; $Apache::lonhomework::results{"resource.0.submission"}= $Apache::lonhomework::results{"resource.$version.0.submission"}=''; + } else { + delete($Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}); } &Apache::lonhomework::showhash(%Apache::lonhomework::results); &Apache::structuretags::finalize_storage(); @@ -885,6 +951,10 @@ sub show_queue { &Apache::grades::init_perm(); my ($classlist,$section,$fullname)=&Apache::grades::getclasslist(\@chosen_sections,); &Apache::grades::reset_perm(); + if (!(grep(/^all$/,@chosen_sections))) { + $result.='

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.=(< @@ -934,6 +1009,7 @@ sub show_queue { + $seclist FORM @@ -1138,13 +1214,19 @@ sub get_from_queue { sub select_user { my ($symb,$cid)=&Apache::lonxml::whichuser(); - my $result.=''; my @chosen_sections= &Apache::loncommon::get_env_multiple('form.chosensections'); &Apache::grades::init_perm(); my ($classlist,$section,$fullname)=&Apache::grades::getclasslist(\@chosen_sections,); &Apache::grades::reset_perm(); + + my $result; + if (!(grep(/^all$/,@chosen_sections))) { + $result.='

Showing only sections '.join(', ',@chosen_sections). + '.

'."\n"; + } + $result.='
'; foreach my $student (sort {lc($$fullname{$a}) cmp lc($$fullname{$b}) } keys %$fullname) { my ($uname,$udom) = split(/:/,$student); @@ -1169,6 +1251,11 @@ sub select_user { $result.='
 '.$fullname->{$student}. ''; } else { + my $seclist; + foreach my $sec (@chosen_sections) { + $seclist.=''; + } $result.=< @@ -1177,7 +1264,8 @@ sub select_user { - + + $seclist $fullname->{$student}