Diff for /loncom/homework/bridgetask.pm between versions 1.239 and 1.249

version 1.239, 2008/08/13 09:10:44 version 1.249, 2009/05/06 16:19:26
Line 82  sub proctor_check_auth { Line 82  sub proctor_check_auth {
  }   }
     }      }
     if ($authenticated) {      if ($authenticated) {
  &check_in($type,$user,$domain,$slot_name);   my $check = &check_in($type,$user,$domain,$slot_name);
                   if ($check =~ /^error:/) {
                       return 0;
                   }
  return 1;   return 1;
     }      }
  }   }
Line 94  sub check_in { Line 97  sub check_in {
     my ($type,$user,$domain,$slot_name) = @_;      my ($type,$user,$domain,$slot_name) = @_;
     my $useslots = &Apache::lonnet::EXT("resource.0.useslots");      my $useslots = &Apache::lonnet::EXT("resource.0.useslots");
     if ( $useslots eq 'map_map') {      if ( $useslots eq 'map_map') {
  &check_in_sequence($user,$domain,$slot_name);   my $result = &check_in_sequence($user,$domain,$slot_name);
           if ($result =~ /^error: /) {
               return $result;
           }
     } else {      } else {
  &create_new_version($type,$user,$domain,$slot_name);   &create_new_version($type,$user,$domain,$slot_name);
  &Apache::structuretags::finalize_storage();   &Apache::structuretags::finalize_storage();
Line 105  sub check_in { Line 111  sub check_in {
 sub check_in_sequence {  sub check_in_sequence {
     my ($user,$domain,$slot_name) = @_;      my ($user,$domain,$slot_name) = @_;
     my $navmap = Apache::lonnavmaps::navmap->new();      my $navmap = Apache::lonnavmaps::navmap->new();
       if (!defined($navmap)) {
           return 'error: ';
       }
     my ($symb) = &Apache::lonnet::whichuser();      my ($symb) = &Apache::lonnet::whichuser();
     my ($map)  = &Apache::lonnet::decode_symb($symb);      my ($map)  = &Apache::lonnet::decode_symb($symb);
     my @resources =       my @resources = 
Line 306  sub add_request_another_attempt_button { Line 315  sub add_request_another_attempt_button {
     my ($slot_name,$slot)=&Apache::slotrequest::check_for_reservation($symb);      my ($slot_name,$slot)=&Apache::slotrequest::check_for_reservation($symb);
     my $action='get_reservation';      my $action='get_reservation';
     if ($slot_name) {      if ($slot_name) {
  $text=&mt('Change reservation.');   $text=&mt('Change reservation');
  $action='change_reservation';   $action='change_reservation';
  my $description=&Apache::slotrequest::get_description($slot_name,   my $description=&Apache::slotrequest::get_description($slot_name,
       $slot);        $slot);
Line 473  sub file_list { Line 482  sub file_list {
  my $file=$file_url.$partial_file;   my $file=$file_url.$partial_file;
  $file=~s|/+|/|g;   $file=~s|/+|/|g;
  &Apache::lonnet::allowuploaded('/adm/bridgetask',$file);   &Apache::lonnet::allowuploaded('/adm/bridgetask',$file);
  $file_list.='<li><span style="white-space: nowrap;"><a href="'.$file.'?rawmode=1" target="lonGRDs"><img src="'.   $file_list.='<li><span class="LC_nobreak"><a href="'.$file.'?rawmode=1" target="lonGRDs"><img src="'.
     &Apache::loncommon::icon($file).'" alt="file icon" border="0" /> '.$file.      &Apache::loncommon::icon($file).'" alt="file icon" border="0" /> '.$file.
     '</a></span></li>'."\n";      '</a></span></li>'."\n";
     }      }
Line 493  sub webgrade_standard_info { Line 502  sub webgrade_standard_info {
   
     my $file_list = &file_list($Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"});      my $file_list = &file_list($Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"});
   
     my %lt=('done'   => 'Next Item',      my %lt = &Apache::lonlocal::texthash(
     'stop'   => 'Quit Grading',          'done'   => 'Next Item',
     'fail'   => 'Fail Rest',          'stop'   => 'Quit Grading',
     'cancel' => 'Cancel',          'fail'   => 'Fail Rest',
     'submit' => 'Submit Grades',          'cancel' => 'Cancel',
     );          'submit' => 'Submit Grades',
     %lt=&Apache::lonlocal::texthash(%lt);      );
   
     my $result=<<INFO;      my $result=<<INFO;
   <div class="LC_GRADING_maincontrols">    <div class="LC_GRADING_maincontrols">
Line 545  sub done_screen { Line 554  sub done_screen {
                    .&mt('[_1]Nonexistent file:[_2]'                     .&mt('[_1]Nonexistent file:[_2]'
                        ,'<span class="LC_error"> '                         ,'<span class="LC_error"> '
                        ,'</span> <span class="LC_filename">'.$file.'</span>');                         ,'</span> <span class="LC_filename">'.$file.'</span>');
     $msg .= "<p>".&mt('Submitted non-existant file [_1]',$file)."</p>\n";      $msg .= "<p>".&mt('Submitted non-existent file [_1]',$file)."</p>\n";
  } else {   } else {
     $file = '<span class="LC_filename">'.$file.'</span>';      $file = '<span class="LC_filename">'.$file.'</span>';
     $msg .= "<p>".&mt('Submitted file [_1]',$file)."</p>\n";      $msg .= "<p>".&mt('Submitted file [_1]',$file)."</p>\n";
Line 579  sub done_screen { Line 588  sub done_screen {
           .'<p><a href="/adm/logout">'.&mt('Logout').'</a></p>'            .'<p><a href="/adm/logout">'.&mt('Logout').'</a></p>'
 .'<p><a href="/adm/roles">'.&mt('Change to a different course').'</a></p>'  .'<p><a href="/adm/roles">'.&mt('Change to a different course').'</a></p>'
 .$message_status  .$message_status
 .$comment_status  .$comment_status;
   
 }  }
   
Line 655  sub start_Task { Line 664  sub start_Task {
  if ($status eq 'CAN_ANSWER' && $version eq '') {   if ($status eq 'CAN_ANSWER' && $version eq '') {
     # CAN_ANSWER mode, and no current version, unproctored access      # CAN_ANSWER mode, and no current version, unproctored access
     # thus self-checkedin      # thus self-checkedin
     &check_in('Task',undef,undef,$slot_name);      my $check = &check_in('Task',undef,undef,$slot_name);
               if ($check =~ /^error: /) {
                   my $symb=&Apache::lonnet::symbread();
                   &Apache::lonnet::logthis("Error during self-checkin of version $version of Task (symb: $symb) using slot: $slot_name");   
               }
     &add_to_queue('gradingqueue',{'type' => 'Task',      &add_to_queue('gradingqueue',{'type' => 'Task',
   'time' => time,    'time' => time,
   'slot' => $slot_name});    'slot' => $slot_name});
Line 685  sub start_Task { Line 698  sub start_Task {
     $msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>';      $msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>';
  } elsif ($status eq 'NOT_IN_A_SLOT') {   } elsif ($status eq 'NOT_IN_A_SLOT') {
     $msg.='<h1>'.&mt('You are not currently signed up to work at this time and/or place.').'</h1>';      $msg.='<h1>'.&mt('You are not currently signed up to work at this time and/or place.').'</h1>';
     $msg.=&add_request_another_attempt_button("Sign up for time to work.");      $msg.=&add_request_another_attempt_button("Sign up for time to work");
  } elsif ($status eq 'NEEDS_CHECKIN') {   } elsif ($status eq 'NEEDS_CHECKIN') {
     $msg.='<h1>'.&mt('You need the Proctor to validate you.').      $msg.='<h1>'.&mt('You need the Proctor to validate you.').
  '</h1>'.&proctor_validation_screen($slot);   '</h1>'.&proctor_validation_screen($slot);
Line 701  sub start_Task { Line 714  sub start_Task {
  }   }
  $result.=$msg.'<br />';   $result.=$msg.'<br />';
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  $result.='\begin{document}\noindent \vskip 1 mm  \begin{minipage}{\textwidth}\vskip 0 mm';   $result.='\noindent \vskip 1 mm  \begin{minipage}{\textwidth}\vskip 0 mm';
  if ($status eq 'UNAVAILABLE') {   if ($status eq 'UNAVAILABLE') {
     $result.=&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'\vskip 0 mm ';      $result.=&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'\vskip 0 mm ';
  } else {   } else {
Line 1091  sub end_Task { Line 1104  sub end_Task {
  if (!$previous && $status ne 'SHOW_ANSWER' &&   if (!$previous && $status ne 'SHOW_ANSWER' &&
     &show_task($status,$previous)) {      &show_task($status,$previous)) {
     my $action = &Apache::lonenc::check_encrypt($env{'request.uri'});      my $action = &Apache::lonenc::check_encrypt($env{'request.uri'});
                       my $donetext = &mt('Done');
     $result.=<<DONEBUTTON;      $result.=<<DONEBUTTON;
 <form name="done" method="post" action="$action">  <form name="done" method="post" action="$action">
    <input type="hidden" name="donescreen" value="1" />     <input type="hidden" name="donescreen" value="1" />
    <input type="submit" value="Done" />     <input type="submit" value="$donetext" />
 </form>  </form>
 DONEBUTTON  DONEBUTTON
                 }                  }
Line 1325  DONEBUTTON Line 1339  DONEBUTTON
     }      }
  }   }
  if (exists($Apache::lonhomework::results{'INTERNAL_store'})) {   if (exists($Apache::lonhomework::results{'INTERNAL_store'})) {
     # instance generation occured and hasn't yet been stored      # instance generation occurred and hasn't yet been stored
     &Apache::structuretags::finalize_storage();      &Apache::structuretags::finalize_storage();
  }   }
     } elsif ($target eq 'webgrade') {      } elsif ($target eq 'webgrade') {
Line 2080  sub select_user { Line 2094  sub select_user {
  $seclist.='<input type="hidden" name="chosensections"    $seclist.='<input type="hidden" name="chosensections" 
                                value="'.$sec.'" />';                                 value="'.$sec.'" />';
     }      }
               my $buttontext=&mt('Regrade');
     $result.=&Apache::loncommon::start_data_table_row();      $result.=&Apache::loncommon::start_data_table_row();
     $result.=<<RESULT;      $result.=<<RESULT;
   <td>    <td>
Line 2088  sub select_user { Line 2103  sub select_user {
       <input type="hidden" name="queue" value="$queue" />        <input type="hidden" name="queue" value="$queue" />
       <input type="hidden" name="webgrade" value="no" />        <input type="hidden" name="webgrade" value="no" />
       <input type="hidden" name="regrade" value="yes" />        <input type="hidden" name="regrade" value="yes" />
       <input type="submit" name="submit" value="Regrade" />        <input type="submit" name="submit" value="$buttontext" />
       $seclist        $seclist
     </form>      </form>
   <td>$classlist->{$student}[&Apache::loncoursedata::CL_FULLNAME()] <tt>($student)</tt> Sec: $classlist->{$student}[&Apache::loncoursedata::CL_SECTION()]</td>    <td>$classlist->{$student}[&Apache::loncoursedata::CL_FULLNAME()] <tt>($student)</tt> Sec: $classlist->{$student}[&Apache::loncoursedata::CL_SECTION()]</td>
Line 2647  sub question_status_message { Line 2662  sub question_status_message {
     }      }
     $status .= '.';      $status .= '.';
     if ($counts->{'opt'}) {      if ($counts->{'opt'}) {
         # FIXME &mt() missing!          if ($counts->{'opt_dim'} + $counts->{'man_dim'} < 1) {
  $status .= ' You were required to pass '.$counts->{'opt_req'}.              $status .= ' '.&mt('You were required to pass [quant,_1,optional criterion,optional criteria].',$counts->{'opt_req'});
     ' optional ';          } else { 
  if ($counts->{'opt_dim'} + $counts->{'man_dim'} < 1) {              $status .= ' '.&mt('You were required to pass [quant,_1,optional component].',$counts->{'opt_req'});
     $status .=          }
  ($counts->{'opt_req'} == 1?'criterion':'criteria');  
  } else {  
     $status .=  
  'component'.($counts->{'opt_req'} == 1?'':'s');  
  }  
  $status .= '.';  
     }      }
     return $status;      return $status;
 }  }
Line 2987  sub layout_webgrade_Criteria { Line 2996  sub layout_webgrade_Criteria {
     my $link=&link($id);      my $link=&link($id);
     my $version = &get_version();      my $version = &get_version();
     my $status  = &get_criteria('status',$version,$dim,$id);      my $status  = &get_criteria('status',$version,$dim,$id);
     my %lt = ( 'ungraded' => 'Ungraded',      my %lt = &Apache::lonlocal::texthash(
        'fail'     => 'Fail',          'ungraded' => 'Ungraded',
        'pass'     => 'Pass',          'fail'     => 'Fail',
        'review'   => 'Review',          'pass'     => 'Pass',
        'comment'  => 'Additional Comment for Student',          'review'   => 'Review',
        );          'comment'  => 'Additional Comment for Student',
     %lt = &Apache::lonlocal::texthash(%lt);      );
     my $comment = &get_criteria('comment',$version,$dim,$id);      my $comment = &get_criteria('comment',$version,$dim,$id);
     $comment = &HTML::Entities::encode($comment,'<>"&');      $comment = &HTML::Entities::encode($comment,'<>"&');
     my %checked;      my %checked;
     foreach my $which ('ungraded','fail','pass','review') {      foreach my $which ('ungraded','fail','pass','review') {
  if ($status eq $which) { $checked{$which} = 'checked="checked"'; }   if ($status eq $which) { $checked{$which} = ' checked="checked"'; }
     }      }
     if (!%checked) { $checked{'ungraded'} = 'checked="checked"'; }      if (!%checked) { $checked{'ungraded'} = ' checked="checked"'; }
     my $buttons;      my $buttons;
     foreach my $which  ('ungraded','fail','pass','review') {      foreach my $which  ('ungraded','fail','pass','review') {
  $buttons .= <<END_BUTTON;   $buttons .= <<END_BUTTON;
  <label class="LC_GRADING_$which">   <label class="LC_GRADING_$which">
  <input type="radio" name="HWVAL_$link" value="$which" $checked{$which} />   <input type="radio" name="HWVAL_$link" value="$which"$checked{$which} />
  $lt{$which}   $lt{$which}
  </label>   </label>
 END_BUTTON  END_BUTTON
Line 3139  sub proctor_validation_screen { Line 3148  sub proctor_validation_screen {
     if (!$env{'form.proctordomain'}) { $env{'form.proctordomain'}=$domain; }      if (!$env{'form.proctordomain'}) { $env{'form.proctordomain'}=$domain; }
     my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'});      my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'});
     $uri = &HTML::Entities::encode($uri,'<>&"');      $uri = &HTML::Entities::encode($uri,'<>&"');
     # FIXME &mt() missing!      my %lt = &Apache::lonlocal::texthash(
                               'prva' => "Proctor Validation",
                               'yoro' => "Your room's proctor needs to validate your access to this resource.",
                               'prus'  => "Proctor's Username:",
                               'pasw'  => "Password:",
                               'prdo'  => "Proctor's Domain:",
                               'vali'  => 'Validate',
                               'stui'  => "Student who should be logged in is:",
                               'name'  => "Name:",
                               'sid'   => "Student/Employee ID:",
                               'unam'  => "Username:",
                              );
     my $result= (<<ENDCHECKOUT);      my $result= (<<ENDCHECKOUT);
 <h2>Proctor Validation</h2>  <h2>$lt{'prva'}</h2>
     <p>Your room's proctor needs to validate your access to this resource.</p>      <p>$lt{'yoro'}</p>
     $msg      $msg
 <form name="checkout" method="post" action="$uri">  <form name="checkout" method="post" action="$uri">
 <input type="hidden" name="validate" value="yes" />  <input type="hidden" name="validate" value="yes" />
 <input type="hidden" name="submitted" value="yes" />  <input type="hidden" name="submitted" value="yes" />
 <table>  <table>
   <tr><td>Proctor's Username:</td><td><input type="string" name="proctorname" value="$env{'form.proctorname'}" /></td></tr>    <tr><td>$lt{'prus'}</td><td><input type="string" name="proctorname" value="$env{'form.proctorname'}" /></td></tr>
   <tr><td>Password:</td><td><input type="password" name="proctorpassword" value="" /></td></tr>    <tr><td>$lt{'pasw'}</td><td><input type="password" name="proctorpassword" value="" /></td></tr>
   <tr><td>Proctor's Domain:</td><td><input type="string" name="proctordomain" value="$env{'form.proctordomain'}" /></td></tr>    <tr><td>$lt{'prdo'}</td><td><input type="string" name="proctordomain" value="$env{'form.proctordomain'}" /></td></tr>
 </table>  </table>
 <input type="submit" name="checkoutbutton" value="Validate"  /><br />  <input type="submit" name="checkoutbutton" value="$lt{'vali'}"  /><br />
 <table border="1">  <table border="1">
   <tr><td>    <tr><td>
     <table>      <table>
       <tr><td colspan="2">Student who should be logged in is:</td></tr>        <tr><td colspan="2">$lt{'stui'}</td></tr>
       <tr><td>Name:</td><td>$name</td></tr>        <tr><td>$lt{'name'}</td><td>$name</td></tr>
       <tr><td>Student ID:</td><td>$env{'environment.id'}</td></tr>        <tr><td>$lt{'sid'}</td><td>$env{'environment.id'}</td></tr>
       <tr><td>Usename</td><td>$user:$domain</td></tr>        <tr><td>$lt{'unam'}</td><td>$user:$domain</td></tr>
       $url        $url
     </table>      </table>
   </tr></td>    </tr></td>
 </table>  </table>
 </form>  </form>
 ENDCHECKOUT  ENDCHECKOUT
   
     return $result;      return $result;
 }  }
   

Removed from v.1.239  
changed lines
  Added in v.1.249


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>