Diff for /loncom/homework/bridgetask.pm between versions 1.55 and 1.61

version 1.55, 2005/09/29 19:18:37 version 1.61, 2005/10/01 04:01:14
Line 144  sub add_previous_version_button { Line 144  sub add_previous_version_button {
 }  }
   
 sub add_grading_button {  sub add_grading_button {
       my (undef,$cid)=&Apache::lonxml::whichuser();
       my $cnum=$env{'course.'.$cid.'.num'};
       my $cdom=$env{'course.'.$cid.'.domain'};
       my %sections;
       my $numsections=&Apache::loncommon::get_sections($cdom,$cnum,\%sections);
       my $size=5;
       if (scalar(keys(%sections)) < 3) {
    $size=scalar(keys(%sections))+2;
       }
       my $sec_select = '<select multiple name="chosensections" size="'.$size.'">'."\n";
       $sec_select .= "<option value='all' selected='selected'>all</option>\n";
       foreach my $sec (sort {lc($a) cmp lc($b)} (keys(%sections))) {
    $sec_select .= "<option name=\"$sec\">$sec</option>\n";
       }
       $sec_select .= "<option value='none'>none</option></select>\n";
       
     my $result=' <input type="submit" name="gradeasubmission" value="'.      my $result=' <input type="submit" name="gradeasubmission" value="'.
  &mt("Get a submission to grade").'" />';   &mt("Get a submission to grade").'" />';
     $result.='<input type="hidden" name="grade_target" value="webgrade" />';      $result.='<input type="hidden" name="grade_target" value="webgrade" />';
     if (&Apache::lonnet::allowed('mgq',$env{'request.course.id'})) {      if (&Apache::lonnet::allowed('mgq',$env{'request.course.id'})) {
  my ($entries,$ready,$locks)=&get_queue_counts('gradingqueue');   my ($entries,$ready,$locks)=&get_queue_counts('gradingqueue');
    $result.='<p>Specify a section: '.$sec_select.'</p>';
  $result.='<p>'.&mt("Grading Queue has [_1] entries. [_2] of them are ready to be graded and [_3] of them are currently being graded",$entries,$ready,$locks);   $result.='<p>'.&mt("Grading Queue has [_1] entries. [_2] of them are ready to be graded and [_3] of them are currently being graded",$entries,$ready,$locks);
   
  $result.=' <input type="submit" name="reviewagrading" value="'.   $result.=' <input type="submit" name="reviewagrading" value="'.
Line 285  sub internal_location { Line 302  sub internal_location {
     return '<!-- LONCAPA_INTERNAL_ADD_TASK_STATUS'.$id.' -->';      return '<!-- LONCAPA_INTERNAL_ADD_TASK_STATUS'.$id.' -->';
 }  }
   
   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='<p><font color="'.$color.'">'.
       &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'}))).
    '</font></p>';
       }
       return $result;
   }
   
 sub start_Task {  sub start_Task {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   
Line 367  sub start_Task { Line 416  sub start_Task {
     $result.="$head_tag_start<title>$name</title></head>      $result.="$head_tag_start<title>$name</title></head>
               $body_tag_start \n".&style();                $body_tag_start \n".&style();
           
     $result.=$form_tag_start.  
  '<input type="hidden" name="submitted" value="yes" />';  
     $result.=&preserve_grade_info();      $result.=&preserve_grade_info();
     $result.=&internal_location();      $result.=&internal_location();
       $result.=$form_tag_start.
    '<input type="hidden" name="submitted" value="yes" />';
     &Apache::lonxml::startredirection();      &Apache::lonxml::startredirection();
  }   }
     } elsif ( ($target eq 'grade' && $env{'form.webgrade'}) ||      } elsif ( ($target eq 'grade' && $env{'form.webgrade'}) ||
Line 429  sub start_Task { Line 478  sub start_Task {
     my $bodytext=&Apache::lonxml::get_all_text("/task",$parser);      my $bodytext=&Apache::lonxml::get_all_text("/task",$parser);
  }   }
  if ($target eq 'webgrade' && defined($env{'form.queue'})) {   if ($target eq 'webgrade' && defined($env{'form.queue'})) {
       if ($webgrade eq 'yes') {
    $result.=&submission_time_stamp();
       }
     $result.=$form_tag_start;      $result.=$form_tag_start;
     $result.='<input type="hidden" name="webgrade" value="'.      $result.='<input type="hidden" name="webgrade" value="'.
  $webgrade.'" />';   $webgrade.'" />';
Line 482  sub get_key_todo { Line 534  sub get_key_todo {
  if ($env{'form.stop'}) {   if ($env{'form.stop'}) {
     return (undef,'stop');      return (undef,'stop');
  } elsif ($env{'form.next'}) {   } elsif ($env{'form.next'}) {
     return (undef,'show_list');      return (undef,'select_user');
  }   }
     }      }
     return ($gradingkey,'selected');      return ($gradingkey,'selected');
  } else {   } else {
     return (undef,'show_list');      return (undef,'select_user');
  }   }
     }      }
     if (defined($env{'form.queue'}) && defined($env{'form.gradingkey'})      if (defined($env{'form.queue'}) && defined($env{'form.gradingkey'})
Line 564  sub end_Task { Line 616  sub end_Task {
   "</table>";    "</table>";
     $result.=&Apache::inputtags::gradestatus('0');      $result.=&Apache::inputtags::gradestatus('0');
  }   }
  if (&show_task($status,$previous)) {   if (&show_task($status,$previous) &&
       $Apache::lonhomework::history{"resource.$version.status"} =~ /^(pass|fail)$/) {
     my $bt_status=$Apache::lonhomework::history{"resource.$version.status"};      my $bt_status=$Apache::lonhomework::history{"resource.$version.status"};
     my $title=&Apache::lonnet::gettitle();      my $title=&Apache::lonnet::gettitle();
     my %slot=&Apache::lonnet::get_slot($Apache::inputtags::slot_name);      my %slot=&Apache::lonnet::get_slot($Apache::inputtags::slot_name);
Line 834  sub check_queue_for_key { Line 887  sub check_queue_for_key {
  if (defined($results{"$todo\0locked"})) {   if (defined($results{"$todo\0locked"})) {
     return 'locked';      return 'locked';
  }   }
    my $slot=$results{$todo}->[0];
    my %slot_data=&Apache::lonnet::get_slot($slot);
    if ($slot_data{'endtime'} > time) { 
       return 'in_progress';
    }
  return 'enqueued';   return 'enqueued';
     }      }
     return undef;      return undef;
Line 856  sub show_queue { Line 914  sub show_queue {
     my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();      my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();
     my $cnum=$env{'course.'.$cid.'.num'};      my $cnum=$env{'course.'.$cid.'.num'};
     my $cdom=$env{'course.'.$cid.'.domain'};      my $cdom=$env{'course.'.$cid.'.domain'};
   
       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 $regexp="^$symb\0";      my $regexp="^$symb\0";
     my %queue=&Apache::lonnet::dump($queue,$cdom,$cnum,$regexp);      my %queue=&Apache::lonnet::dump($queue,$cdom,$cnum,$regexp);
     my ($tmp)=%queue;      my ($tmp)=%queue;
Line 866  sub show_queue { Line 931  sub show_queue {
     if ($with_selects) { $result.="<th></th>"; }      if ($with_selects) { $result.="<th></th>"; }
     $result.="<th>resource</th><th>user</th><th>type</th><th>data</th></tr>";      $result.="<th>resource</th><th>user</th><th>type</th><th>data</th></tr>";
     foreach my $key (sort(keys(%queue))) {      foreach my $key (sort(keys(%queue))) {
    my ($symb,$uname,$udom) = &decode_queue_key($key);
    if (!defined($classlist->{$uname.':'.$udom})) { next; }
  if ($key=~/locked$/ && !$with_selects) {   if ($key=~/locked$/ && !$with_selects) {
     my ($symb,$uname,$udom) = &decode_queue_key($key);  
     my $title=&Apache::lonnet::gettitle($symb);      my $title=&Apache::lonnet::gettitle($symb);
     $result.="<tr><td>$title</td><td>$uname</td>";      $result.="<tr><td>$title</td><td>$uname</td>";
     $result.='<td>lock</td><td>'.$queue{$key}.'</td></tr>';      $result.='<td>lock</td><td>'.$queue{$key}.'</td></tr>';
Line 878  sub show_queue { Line 944  sub show_queue {
     $result.='<td>last queue modification time</td><td>'.      $result.='<td>last queue modification time</td><td>'.
  &Apache::lonlocal::locallocaltime($queue{$key})."</td></tr>";   &Apache::lonlocal::locallocaltime($queue{$key})."</td></tr>";
  } elsif ($key!~/(timestamp|locked)$/) {   } elsif ($key!~/(timestamp|locked)$/) {
     my ($symb,$uname,$udom) = &decode_queue_key($key);  
     my $title=&Apache::lonnet::gettitle($symb);      my $title=&Apache::lonnet::gettitle($symb);
     $result.="<tr>";      $result.="<tr>";
     my $slot=$queue{$key}->[0];      my $slot=$queue{$key}->[0];
Line 1110  sub select_user { Line 1175  sub select_user {
     my ($symb,$cid)=&Apache::lonxml::whichuser();      my ($symb,$cid)=&Apache::lonxml::whichuser();
     my $result.='<table border="1">';      my $result.='<table border="1">';
   
       my @chosen_sections=
    &Apache::loncommon::get_env_multiple('form.chosensections');
     &Apache::grades::init_perm();      &Apache::grades::init_perm();
     my ($classlist,$section,$fullname)=&Apache::grades::getclasslist('all',);      my ($classlist,$section,$fullname)=&Apache::grades::getclasslist(\@chosen_sections,);
     &Apache::grades::reset_perm();      &Apache::grades::reset_perm();
   
     foreach my $student (sort {lc($$fullname{$a}) cmp lc($$fullname{$b}) } keys %$fullname) {      foreach my $student (sort {lc($$fullname{$a}) cmp lc($$fullname{$b}) } keys %$fullname) {
  my ($uname,$udom) = split(/:/,$student);   my ($uname,$udom) = split(/:/,$student);
   
  my %status = &get_student_status($symb,$cid,$udom,$uname);   my %status = &get_student_status($symb,$cid,$udom,$uname);
  my $queue = 'none';   my $queue = 'none';
  if ($status{'reviewqueue'} eq 'enqueued') {   my $cannot_grade;
    if ($status{'reviewqueue'} =~ /^(in_progress|enqueue)$/) {
     $queue = 'reviewqueue';      $queue = 'reviewqueue';
  } elsif ($status{'gradingqueue'} eq 'enqueued') {      if ($status{'reviewqueue'} eq 'in_progress') {
    $cannot_grade=1;
       }
    } elsif ($status{'gradingqueue'} =~ /^(in_progress|enqueue)$/) {
     $queue = 'gradingqueue';      $queue = 'gradingqueue';
       if ($status{'gradingqueue'} eq 'in_progress') {
    $cannot_grade=1;
       }
  }   }
  my $todo =    my $todo = 
     &Apache::lonnet::escape(&encode_queue_key($symb,$udom,$uname));      &Apache::lonnet::escape(&encode_queue_key($symb,$udom,$uname));
  $result.=<<RESULT;   if ($cannot_grade) {
       $result.='<tr><td>&nbsp;</td><td>'.$fullname->{$student}.
    '</td><td>';
    } else {
       $result.=<<RESULT;
 <tr>  <tr>
   <td>    <td>
     <form method="POST">      <form method="POST">
Line 1138  sub select_user { Line 1217  sub select_user {
   <td>$fullname->{$student}</td>    <td>$fullname->{$student}</td>
   <td>    <td>
 RESULT  RESULT
           }
         if ($status{'status'} eq 'pass') {          if ($status{'status'} eq 'pass') {
     $result .= '<font color="green">'.&mt('Passed').'</font>';      $result .= '<font color="green">'.&mt('Passed').'</font>';
  } elsif ($status{'status'} eq 'fail') {   } elsif ($status{'status'} eq 'fail') {
Line 1160  RESULT Line 1239  RESULT
     $result .= &mt('Awaiting Review');      $result .= &mt('Awaiting Review');
  } elsif ($status{'reviewqueue'} eq 'locked') {   } elsif ($status{'reviewqueue'} eq 'locked') {
     $result .= &mt('Under Review');      $result .= &mt('Under Review');
    } elsif ($status{'reviewqueue'} eq 'in_progress') {
       $result .= &mt('Still being worked on.');
  } elsif ($status{'gradingqueue'} eq 'enqueued') {   } elsif ($status{'gradingqueue'} eq 'enqueued') {
     $result .= &mt('Awaiting Grading');      $result .= &mt('Awaiting Grading');
  } elsif ($status{'gradingqueue'} eq 'locked') {   } elsif ($status{'gradingqueue'} eq 'locked') {
     $result .= &mt('Being Graded');      $result .= &mt('Being Graded');
    } elsif ($status{'gradingqueue'} eq 'in_progress') {
       $result .= &mt('Still being worked on.');
  } else {   } else {
     $result.="&nbsp;";      $result.="&nbsp;";
  }   }

Removed from v.1.55  
changed lines
  Added in v.1.61


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