--- loncom/homework/bridgetask.pm 2010/11/01 16:32:32 1.256 +++ loncom/homework/bridgetask.pm 2012/09/12 05:14:09 1.260 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.256 2010/11/01 16:32:32 raeburn Exp $ +# $Id: bridgetask.pm,v 1.260 2012/09/12 05:14:09 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -199,6 +199,10 @@ sub get_version { sub add_previous_version_button { my ($status)=@_; + my (undef,undef,$udom,$uname)=&Apache::lonnet::whichuser(); + if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { + return; + } my $result; if ($Apache::lonhomework::history{'resource.0.version'} eq '') { return ''; @@ -235,7 +239,10 @@ sub add_previous_version_button { } sub add_grading_button { - my (undef,$cid)=&Apache::lonnet::whichuser(); + my (undef,$cid,$udom,$uname)=&Apache::lonnet::whichuser(); + if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { + return; + } my $cnum=$env{'course.'.$cid.'.num'}; my $cdom=$env{'course.'.$cid.'.domain'}; my %sections = &Apache::loncommon::get_sections($cdom,$cnum); @@ -250,10 +257,14 @@ sub add_grading_button { $sec_select .= "\t\n"; } $sec_select .= "\t\n\n"; - - my $result="\n\t".''; - $result.="\n\t".''; + + my $uri=$env{'request.uri'}; + if ($env{'request.enc'}) { $uri=&Apache::lonenc::encrypted($uri); } + my $result = + '
'. + "\n\t".''. + "\n\t".''; my $see_all = &Apache::lonnet::allowed('mgq',$env{'request.course.id'}); my $see_sec = &Apache::lonnet::allowed('mgq',$env{'request.course.id'}. '/'.$env{'request.course.sec'}); @@ -299,11 +310,46 @@ sub add_grading_button { $result.=&Apache::loncommon::studentbrowser_javascript(); $result.= '

'."\n"; } + $result .= '
'."\n"; + return $result; +} + +sub add_slotlist_button { + my (undef,$cid,$udom,$uname)=&Apache::lonnet::whichuser(); + if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { + return; + } + my $symb=&Apache::lonnet::symbread(); + my $result; + if (&Apache::lonnet::allowed('mgq',$env{'request.course.id'}) || + &Apache::lonnet::allowed('mgq',$env{'request.course.id'}.'/'.$env{'request.course.sec'})) { + $result = '
'. + ''. + ''. + ''. + '
'; + my $target_id = + &Apache::lonstathelpers::make_target_id({symb => $symb, + part => '0'}); + if (!§ion_restricted()) { + $result.='
'. + ''. + ''. + ''. + '
'; + } + } return $result; } sub add_request_another_attempt_button { my ($text)=@_; + my (undef,$cid,$udom,$uname)=&Apache::lonnet::whichuser(); + if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { + return; + } if (!$text) { $text=&mt('Request another attempt'); } my $result; my $symb=&Apache::lonnet::symbread(); @@ -642,30 +688,11 @@ sub start_Task { if ($target eq 'web' && $env{'request.state'} ne 'construct') { if ($Apache::lonhomework::queuegrade || $Apache::lonhomework::modifygrades) { - $result.='
'.&add_grading_button()."
\n"; + $result .= &add_grading_button(); my $symb=&Apache::lonnet::symbread(); if (&Apache::lonnet::allowed('mgq',$env{'request.course.id'}) || &Apache::lonnet::allowed('mgq',$env{'request.course.id'}.'/'.$env{'request.course.sec'})) { - $result.='
'. - ''. - ''. - ''. - '
'; - my $target_id = - &Apache::lonstathelpers::make_target_id({symb => $symb, - part => '0'}); - if (!§ion_restricted()) { - $result.='
'. - ''. - ''. - ''. - '
'; - } + $result .= &add_slotlist_button(); } } } @@ -692,10 +719,21 @@ sub start_Task { 'slot' => $slot_name}); ($version,$previous)=&get_version(); } - - my $status_id = - ($previous || $status eq 'SHOW_ANSWER') ? 'LC_task_feedback' - : 'LC_task_take'; + if (($target eq 'web') && ($version ne '') && ($slot_name ne '')) { + if (ref($slot) eq 'HASH') { + if ($slot->{'endtime'} > time()) { + $result .= + &Apache::lonhtmlcommon::set_due_date($slot->{'endtime'}); + } + } + } + + my $status_id = 'LC_task_take'; + if ($previous && $target eq 'answer') { + $status_id = 'LC_task_answer'; + } elsif ($previous || $status eq 'SHOW_ANSWER') { + $status_id = 'LC_task_feedback'; + } $result .= '
'."\n"; push(@Apache::inputtags::status,$status); @@ -713,22 +751,22 @@ sub start_Task { } my $msg; if ($status eq 'UNAVAILABLE') { - $msg.='

'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'

'; + $msg.='

'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'

'; } elsif ($status eq 'NOT_IN_A_SLOT') { - $msg.='

'.&mt('You are not currently signed up to work at this time and/or place.').'

'; + $msg.='

'.&mt('You are not currently signed up to work at this time and/or place.').'

'; $msg.=&add_request_another_attempt_button("Sign up for time to work"); } elsif ($status eq 'NEEDS_CHECKIN') { - $msg.='

'.&mt('You need the Proctor to validate you.'). - '

'.&proctor_validation_screen($slot); + $msg.='

'.&mt('You need the Proctor to validate you.'). + '

'.&proctor_validation_screen($slot); } elsif ($status eq 'WAITING_FOR_GRADE') { - $msg.='

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

'; + $msg.='

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

'; } elsif ($env{'form.donescreen'}) { $result .= &done_screen($version); } elsif ($status eq 'NOT_YET_VIEWED') { my $symb=&Apache::lonnet::symbread(); $msg.=&Apache::structuretags::firstaccess_msg($accessmsg,$symb); } else { - $msg.='

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

'; + $msg.='

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

'; } if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') { $msg.='The problem '.$accessmsg; @@ -1125,13 +1163,13 @@ sub end_Task { $portheader = &mt('Submit Portfolio Files for Grading'); $porttext = &mt('Indicate the files from your portfolio to be evaluated in grading this task.'); } - $result.="\n".'

'.&Apache::lonhtmlcommon::start_pick_box(). + $result.="\n".'

'.&Apache::lonhtmlcommon::start_pick_box(). &Apache::inputtags::file_selector("$version.0", "bridgetask","*", 'portfolioonly', '

'.$portheader.'


'. $porttext.'
'). - &Apache::lonhtmlcommon::end_pick_box().'

'; + &Apache::lonhtmlcommon::end_pick_box().'
'; } if (!$previous && $status ne 'SHOW_ANSWER' && &show_task($status,$previous)) { @@ -1214,7 +1252,9 @@ DONEBUTTON } $result.="\n
\n". &Apache::loncommon::end_page({'discussion' => 1}); - } + } elsif ($target eq 'answer') { + $result.="\n\n"; + } } my $useslots = &Apache::lonnet::EXT("resource.0.useslots"); @@ -1225,7 +1265,7 @@ DONEBUTTON } 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 && $status eq 'CAN_ANSWER') {