Diff for /loncom/homework/bridgetask.pm between versions 1.181 and 1.191

version 1.181, 2006/07/17 20:35:11 version 1.191, 2006/11/06 16:07:06
Line 43  use LONCAPA; Line 43  use LONCAPA;
     
   
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::bridgetask',('Task','IntroParagraph','Dimension','Question','QuestionText','Setup','Instance','InstanceText','Criteria','ClosingParagraph'));      &Apache::lonxml::register('Apache::bridgetask',('Task','IntroParagraph','Dimension','Question','QuestionText','Setup','Instance','InstanceText','Criteria','GraderNote','ClosingParagraph'));
 }  }
   
 my %dimension;  my %dimension;
Line 105  sub check_in { Line 105  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();
     my ($symb) = &Apache::lonxml::whichuser();      my ($symb) = &Apache::lonnet::whichuser();
     my ($map)  = &Apache::lonnet::decode_symb($symb);      my ($map)  = &Apache::lonnet::decode_symb($symb);
     my @resources =       my @resources = 
  $navmap->retrieveResources($map, sub { $_[0]->is_problem() },0,0);   $navmap->retrieveResources($map, sub { $_[0]->is_problem() },0,0);
Line 225  sub add_previous_version_button { Line 225  sub add_previous_version_button {
 }  }
   
 sub add_grading_button {  sub add_grading_button {
     my (undef,$cid)=&Apache::lonxml::whichuser();      my (undef,$cid)=&Apache::lonnet::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 %sections = &Apache::loncommon::get_sections($cdom,$cnum);      my %sections = &Apache::loncommon::get_sections($cdom,$cnum);
Line 388  sub internal_location { Line 388  sub internal_location {
 }  }
   
 sub submission_time_stamp {  sub submission_time_stamp {
     my ($symb,$courseid,$udom,$uname)=&Apache::lonxml::whichuser();      my ($symb,$courseid,$udom,$uname)=&Apache::lonnet::whichuser();
     my $submissiontime;      my $submissiontime;
     my $version=$Apache::lonhomework::history{'resource.0.version'};      my $version=$Apache::lonhomework::history{'resource.0.version'};
     for (my $v=$Apache::lonhomework::history{'version'};$v>0;$v--) {      for (my $v=$Apache::lonhomework::history{'version'};$v>0;$v--) {
  if (defined($Apache::lonhomework::history{$v.':resource.'.$version.'.0.bridgetask.portfiles'})) {   if (defined($Apache::lonhomework::history{$v.':resource.'.$version.'.0.bridgetask.portfiles'})
       && defined($Apache::lonhomework::history{$v.':resource.'.$version.'.0.tries'})) {
     $submissiontime=$Apache::lonhomework::history{$v.':timestamp'};      $submissiontime=$Apache::lonhomework::history{$v.':timestamp'};
       last;
  }   }
     }      }
     my $result;      my $result;
Line 404  sub submission_time_stamp { Line 406  sub submission_time_stamp {
  my ($color,$when)=('#FF6666','after');   my ($color,$when)=('#FF6666','after');
  if ($diff > 0) { ($color,$when)=('#336600','before'); }   if ($diff > 0) { ($color,$when)=('#336600','before'); }
  my $info;   my $info;
    $diff = abs($diff);
  if ($diff%60) { $info=($diff%60).' seconds'; }   if ($diff%60) { $info=($diff%60).' seconds'; }
  $diff=int($diff/60);   $diff=int($diff/60);
  if ($diff%60) { $info=($diff%60).' minutes '.$info; }   if ($diff%60) { $info=($diff%60).' minutes '.$info; }
  $diff=int($diff/60);   $diff=int($diff/60);
  if ($diff) {    $info=$diff.' hours '.$info; }   if ($diff) {    $info=$diff.' hours '.$info; }
  $result='<p><font color="'.$color.'">'.   $result='<p><font color="'.$color.'">'.
     &mt('Student submitted [_1] [_2] the deadline.       &mt('Student submitted [_1] [_2] the deadline. '.
                  (Submission was at [_3], end of period was [_4].)',   '(Submission was at [_3], end of period was [_4].)',
  $info,$when,scalar(localtime($submissiontime)),   $info,$when,
  scalar(localtime($slot{'endtime'}))).   &Apache::lonlocal::locallocaltime($submissiontime),
    &Apache::lonlocal::locallocaltime($slot{'endtime'})).
  '</font></p>';   '</font></p>';
     }      }
     return $result;      return $result;
Line 422  sub submission_time_stamp { Line 426  sub submission_time_stamp {
 sub file_list {  sub file_list {
     my ($files,$uname,$udom) = @_;      my ($files,$uname,$udom) = @_;
     if (!defined($uname) || !defined($udom)) {      if (!defined($uname) || !defined($udom)) {
  (undef,undef,$udom,$uname) = &Apache::lonxml::whichuser();   (undef,undef,$udom,$uname) = &Apache::lonnet::whichuser();
     }      }
     my $file_url = '/uploaded/'.$udom.'/'.$uname.'/portfolio/';      my $file_url = '/uploaded/'.$udom.'/'.$uname.'/portfolio/';
   
Line 483  sub done_screen { Line 487  sub done_screen {
     my ($version) = @_;      my ($version) = @_;
     my $title=&Apache::lonnet::gettitle();      my $title=&Apache::lonnet::gettitle();
     my @files=split(',',$Apache::lonhomework::history{'resource.'.$version.'.0.bridgetask.portfiles'});      my @files=split(',',$Apache::lonhomework::history{'resource.'.$version.'.0.bridgetask.portfiles'});
     my (undef,undef,$domain,$user)= &Apache::lonxml::whichuser();      my (undef,undef,$domain,$user)= &Apache::lonnet::whichuser();
     my $files = '<ul>';      my $files = '<ul>';
     my $msg;      my $msg;
     foreach my $file (@files) {      foreach my $file (@files) {
Line 827  sub get_key_todo { Line 831  sub get_key_todo {
     if (defined($env{'form.regradeaspecificsubmission'}) &&      if (defined($env{'form.regradeaspecificsubmission'}) &&
  defined($env{'form.gradinguser'})               &&   defined($env{'form.gradinguser'})               &&
  defined($env{'form.gradingdomain'})               ) {   defined($env{'form.gradingdomain'})               ) {
  my ($symb,$cid)=&Apache::lonxml::whichuser();   my ($symb,$cid)=&Apache::lonnet::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 $uname = $env{'form.gradinguser'};   my $uname = $env{'form.gradinguser'};
Line 1098  DONEBUTTON Line 1102  DONEBUTTON
     if ($award eq 'SUBMITTED') {      if ($award eq 'SUBMITTED') {
  &add_to_queue('gradingqueue',\%queue_data);   &add_to_queue('gradingqueue',\%queue_data);
     }      }
  } elsif ($Apache::lonhomework::results{'INTERNAL_store'}) {  
     &Apache::structuretags::finalize_storage();  
  }   }
  if ($target eq 'grade' && $env{'form.webgrade'} eq 'yes'    if ($target eq 'grade' && $env{'form.webgrade'} eq 'yes' 
     && exists($env{'form.cancel'})) {      && exists($env{'form.cancel'})) {
Line 1140  DONEBUTTON Line 1142  DONEBUTTON
  $env{'user.name'}.':'.$env{'user.domain'};   $env{'user.name'}.':'.$env{'user.domain'};
     if ($review) {      if ($review) {
  $Apache::lonhomework::results{"resource.$version.0.status"}='review';   $Apache::lonhomework::results{"resource.$version.0.status"}='review';
  if ($env{'form.queue'} eq 'reviewqueue') {  
     &check_queue_unlock($env{'form.queue'});  
     &Apache::lonxml::debug(" still needs review not changing status.");  
  } else {  
     if ($env{'form.queue'} ne 'none') {  
  &move_between_queues($env{'form.queue'},'reviewqueue');  
     } else {  
  &add_to_queue('reviewqueue',\%queue_data);  
     }  
  }  
     } elsif ($ungraded) {      } elsif ($ungraded) {
  $Apache::lonhomework::results{"resource.$version.0.status"}='ungraded';   $Apache::lonhomework::results{"resource.$version.0.status"}='ungraded';
  if ($env{'form.queue'} eq 'reviewqueue') {  
     &Apache::lonxml::debug("moving back.");  
     &move_between_queues($env{'form.queue'},  
  'gradingqueue');  
  } elsif ($env{'form.queue'} eq 'none' ) {  
     &add_to_queue('gradingqueue',\%queue_data);  
  } else {  
     &check_queue_unlock($env{'form.queue'});  
  }  
     } elsif ($mandatory_failed) {      } elsif ($mandatory_failed) {
  $Apache::lonhomework::results{"resource.$version.0.status"}='fail';   $Apache::lonhomework::results{"resource.$version.0.status"}='fail';
  $Apache::lonhomework::results{"resource.$version.0.solved"}='incorrect_by_override';   $Apache::lonhomework::results{"resource.$version.0.solved"}='incorrect_by_override';
  $Apache::lonhomework::results{"resource.$version.0.award"}='INCORRECT';   $Apache::lonhomework::results{"resource.$version.0.award"}='INCORRECT';
  $Apache::lonhomework::results{"resource.$version.0.awarded"}='0';   $Apache::lonhomework::results{"resource.$version.0.awarded"}='0';
  &remove_from_queue($env{'form.queue'});    my ($symb,$courseid,$udom,$uname)=&Apache::lonnet::whichuser();
   
  my ($symb,$courseid,$udom,$uname)=&Apache::lonxml::whichuser();  
   
  if ($env{'form.regrade'} ne 'yes') {   if ($env{'form.regrade'} ne 'yes') {
     $Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}=      $Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}=
Line 1184  DONEBUTTON Line 1165  DONEBUTTON
  $Apache::lonhomework::results{"resource.$version.0.solved"}='correct_by_override';   $Apache::lonhomework::results{"resource.$version.0.solved"}='correct_by_override';
  $Apache::lonhomework::results{"resource.$version.0.award"}='EXACT_ANS';   $Apache::lonhomework::results{"resource.$version.0.award"}='EXACT_ANS';
  $Apache::lonhomework::results{"resource.$version.0.awarded"}='1';   $Apache::lonhomework::results{"resource.$version.0.awarded"}='1';
  &remove_from_queue($env{'form.queue'});   my ($symb,$courseid,$udom,$uname)=&Apache::lonnet::whichuser();
   
  my ($symb,$courseid,$udom,$uname)=&Apache::lonxml::whichuser();  
  if ($env{'form.regrade'} ne 'yes') {   if ($env{'form.regrade'} ne 'yes') {
     $Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}=      $Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}=
  $Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"};   $Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"};
Line 1209  DONEBUTTON Line 1188  DONEBUTTON
     }      }
     &minimize_storage();      &minimize_storage();
     &Apache::structuretags::finalize_storage();      &Apache::structuretags::finalize_storage();
       
       # data stored, now handle queue
       if ($review) {
    if ($env{'form.queue'} eq 'reviewqueue') {
       &check_queue_unlock($env{'form.queue'});
       &Apache::lonxml::debug(" still needs review not changing status.");
    } else {
       if ($env{'form.queue'} ne 'none') {
    &move_between_queues($env{'form.queue'},'reviewqueue');
       } else {
    &add_to_queue('reviewqueue',\%queue_data);
       }
    }
       } elsif ($ungraded) {
    if ($env{'form.queue'} eq 'reviewqueue') {
       &Apache::lonxml::debug("moving back.");
       &move_between_queues($env{'form.queue'},
    'gradingqueue');
    } elsif ($env{'form.queue'} eq 'none' ) {
       &add_to_queue('gradingqueue',\%queue_data);
    } else {
       &check_queue_unlock($env{'form.queue'});
    }
       } elsif ($mandatory_failed) {
    &remove_from_queue($env{'form.queue'}); 
       } else {
    &remove_from_queue($env{'form.queue'});
       }
    }
    if (exists($Apache::lonhomework::results{'INTERNAL_store'})) {
       # instance generation occured and hasn't yet been stored
       &Apache::structuretags::finalize_storage();
  }   }
     } elsif ($target eq 'webgrade') {      } elsif ($target eq 'webgrade') {
  $result.="</div>";   $result.="</div>";
Line 1232  DONEBUTTON Line 1243  DONEBUTTON
       'Partial Credit Factor');        'Partial Credit Factor');
  $result.=&Apache::response::meta_stores_write('status','string',   $result.=&Apache::response::meta_stores_write('status','string',
       'Bridge Task Status');        'Bridge Task Status');
       } elsif ($target eq 'edit') {
    &Apache::structuretags::reset_problem_globals('Task');
    undef($Apache::lonhomework::parsing_a_task);
    return ('','no');
     }      }
     &Apache::structuretags::reset_problem_globals('Task');      &Apache::structuretags::reset_problem_globals('Task');
     undef($Apache::lonhomework::parsing_a_task);      undef($Apache::lonhomework::parsing_a_task);
Line 1258  sub move_between_queues { Line 1273  sub move_between_queues {
 sub check_queue_unlock {  sub check_queue_unlock {
     my ($queue,$key,$allow_not_me)=@_;      my ($queue,$key,$allow_not_me)=@_;
     if ($queue eq 'none') { return 'ok'; }      if ($queue eq 'none') { return 'ok'; }
     my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();      my ($symb,$cid,$udom,$uname)=&Apache::lonnet::whichuser();
     if (!defined($key)) {      if (!defined($key)) {
  $key="$symb\0queue\0$uname:$udom";   $key="$symb\0queue\0$uname:$udom";
     }      }
Line 1281  sub in_queue { Line 1296  sub in_queue {
     if ($queue eq 'none') { return 0; }      if ($queue eq 'none') { return 0; }
     if (!defined($symb) || !defined($cdom) || !defined($cnum)      if (!defined($symb) || !defined($cdom) || !defined($cnum)
  || !defined($udom) || !defined($uname)) {   || !defined($udom) || !defined($uname)) {
  ($symb,my $cid,$udom,$uname)=&Apache::lonxml::whichuser();   ($symb,my $cid,$udom,$uname)=&Apache::lonnet::whichuser();
  $cnum=$env{'course.'.$cid.'.num'};   $cnum=$env{'course.'.$cid.'.num'};
  $cdom=$env{'course.'.$cid.'.domain'};   $cdom=$env{'course.'.$cid.'.domain'};
     }      }
Line 1300  sub remove_from_queue { Line 1315  sub remove_from_queue {
     if ($queue eq 'none') { return 'ok'; }      if ($queue eq 'none') { return 'ok'; }
     if (!defined($symb) || !defined($cdom) || !defined($cnum)      if (!defined($symb) || !defined($cdom) || !defined($cnum)
  || !defined($udom) || !defined($uname)) {   || !defined($udom) || !defined($uname)) {
  ($symb,my $cid,$udom,$uname)=&Apache::lonxml::whichuser();   ($symb,my $cid,$udom,$uname)=&Apache::lonnet::whichuser();
  $cnum=$env{'course.'.$cid.'.num'};   $cnum=$env{'course.'.$cid.'.num'};
  $cdom=$env{'course.'.$cid.'.domain'};   $cdom=$env{'course.'.$cid.'.domain'};
     }      }
Line 1325  sub setup_env_for_other_user { Line 1340  sub setup_env_for_other_user {
   
 sub get_queue_data {  sub get_queue_data {
     my ($queue,$udom,$uname)=@_;      my ($queue,$udom,$uname)=@_;
     my ($symb,$cid,$other_udom,$other_uname)=&Apache::lonxml::whichuser();      my ($symb,$cid,$other_udom,$other_uname)=&Apache::lonnet::whichuser();
     if (!$uname || !$udom) {      if (!$uname || !$udom) {
  $uname=$other_uname;   $uname=$other_uname;
  $udom =$other_udom;   $udom =$other_udom;
Line 1371  sub check_queue_for_key { Line 1386  sub check_queue_for_key {
 sub add_to_queue {  sub add_to_queue {
     my ($queue,$user_data)=@_;      my ($queue,$user_data)=@_;
     if ($queue eq 'none') { return 'ok'; }      if ($queue eq 'none') { return 'ok'; }
     my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();      my ($symb,$cid,$udom,$uname)=&Apache::lonnet::whichuser();
     if (!$cid || $env{'request.state'} eq 'construct') {      if (!$cid || $env{'request.state'} eq 'construct') {
  return 'no_queue';   return 'no_queue';
     }      }
Line 1409  sub get_limited_classlist { Line 1424  sub get_limited_classlist {
 sub show_queue {  sub show_queue {
     my ($queue,$with_selects)=@_;      my ($queue,$with_selects)=@_;
     my $result;      my $result;
     my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();      my ($symb,$cid,$udom,$uname)=&Apache::lonnet::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'};
   
Line 1536  FORM Line 1551  FORM
 sub get_queue_counts {  sub get_queue_counts {
     my ($queue)=@_;      my ($queue)=@_;
     my $result;      my $result;
     my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();      my ($symb,$cid,$udom,$uname)=&Apache::lonnet::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'};
   
Line 1553  sub get_queue_counts { Line 1568  sub get_queue_counts {
     foreach my $key (sort(keys(%queue))) {      foreach my $key (sort(keys(%queue))) {
  my ($symb,$uname,$udom) = &decode_queue_key($key);   my ($symb,$uname,$udom) = &decode_queue_key($key);
  if (!defined($classlist->{$uname.':'.$udom})) { next; }   if (!defined($classlist->{$uname.':'.$udom})) { next; }
   
  if ($key=~/locked$/) {   if ($key=~/locked$/) {
     $locks++;      $locks++;
  } elsif ($key=~/timestamp$/) {   } elsif ($key=~/timestamp$/) {
Line 1594  sub decode_queue_key { Line 1608  sub decode_queue_key {
 sub queue_key_locked {  sub queue_key_locked {
     my ($queue,$key,$cdom,$cnum)=@_;      my ($queue,$key,$cdom,$cnum)=@_;
     if (!defined($cdom) || !defined($cnum)) {      if (!defined($cdom) || !defined($cnum)) {
  my (undef,$cid)=&Apache::lonxml::whichuser();   my (undef,$cid)=&Apache::lonnet::whichuser();
  $cnum=$env{'course.'.$cid.'.num'};   $cnum=$env{'course.'.$cid.'.num'};
  $cdom=$env{'course.'.$cid.'.domain'};   $cdom=$env{'course.'.$cid.'.domain'};
     }      }
Line 1706  sub find_mid_grade { Line 1720  sub find_mid_grade {
 sub lock_key {  sub lock_key {
     my ($queue,$todo)=@_;      my ($queue,$todo)=@_;
     my $me=$env{'user.name'}.':'.$env{'user.domain'};      my $me=$env{'user.name'}.':'.$env{'user.domain'};
     my (undef,$cid)=&Apache::lonxml::whichuser();      my (undef,$cid)=&Apache::lonnet::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 $success=&Apache::lonnet::newput($queue,{"$todo\0locked"=> $me},      my $success=&Apache::lonnet::newput($queue,{"$todo\0locked"=> $me},
Line 1721  sub lock_key { Line 1735  sub lock_key {
 sub get_queue_symb_status {  sub get_queue_symb_status {
     my ($queue,$symb,$cdom,$cnum) = @_;      my ($queue,$symb,$cdom,$cnum) = @_;
     if (!defined($cdom) || !defined($cnum)) {      if (!defined($cdom) || !defined($cnum)) {
  my (undef,$cid)=&Apache::lonxml::whichuser();   my (undef,$cid)=&Apache::lonnet::whichuser();
  $cnum=$env{'course.'.$cid.'.num'};   $cnum=$env{'course.'.$cid.'.num'};
  $cdom=$env{'course.'.$cid.'.domain'};   $cdom=$env{'course.'.$cid.'.domain'};
     }      }
Line 1745  sub get_queue_symb_status { Line 1759  sub get_queue_symb_status {
 sub get_from_queue {  sub get_from_queue {
     my ($queue)=@_;      my ($queue)=@_;
     my $result;      my $result;
     my ($symb,$cid,$udom,$uname)=&Apache::lonxml::whichuser();      my ($symb,$cid,$udom,$uname)=&Apache::lonnet::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 $todo=&find_mid_grade($queue,$symb,$cdom,$cnum);      my $todo=&find_mid_grade($queue,$symb,$cdom,$cnum);
Line 1821  sub get_from_queue { Line 1835  sub get_from_queue {
 }  }
   
 sub select_user {  sub select_user {
     my ($symb,$cid)=&Apache::lonxml::whichuser();      my ($symb,$cid)=&Apache::lonnet::whichuser();
   
     my @chosen_sections=      my @chosen_sections=
  &Apache::loncommon::get_env_multiple('form.chosensections');   &Apache::loncommon::get_env_multiple('form.chosensections');
Line 2150  sub get_criteria { Line 2164  sub get_criteria {
  } else {   } else {
     my $dim_status=$Apache::lonhomework::history{"resource.$version.0.$dim.status"};      my $dim_status=$Apache::lonhomework::history{"resource.$version.0.$dim.status"};
     my $mandatory='Mandatory';      my $mandatory='Mandatory';
     if ($Apache::bridgetask::dimensionmandatory{$dim} eq 'N') {      if (&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval) eq 'N') {
  $mandatory='Optional';   $mandatory='Optional';
     }      }
     my $dim_info="<div class='LC_$dim_status LC_question_grade'>\n";      my $dim_info="<div class='LC_$dim_status LC_question_grade'>\n";
Line 2197  sub get_criteria { Line 2211  sub get_criteria {
     $result.=$dimension{$id}{'result'};      $result.=$dimension{$id}{'result'};
     next;      next;
  }   }
  my $status= &get_criteria('status', $version,$dim,$id);  
  my $comment=&get_criteria('comment',$version,$dim,$id);  
  my $mandatory=($dimension{$dim}{'criteria.'.$id.'.mandatory'} ne 'N');  
  if ($mandatory) {  
     $mandatory='Mandatory';  
  } else {  
     $mandatory='Optional';  
  }  
  if ($status eq 'fail') {  
  } elsif ($status eq 'pass') {  
  } else {  
     &Apache::lonxml::error("Student viewing a graded bridgetask was shown a status of $status");  
  }  
  my $status_display=$status;  
  $status_display=~s/^([a-z])/uc($1)/e;  
  $result.=  
     '<div class="LC_'.$status.' LC_criteria"><h4>'  
     .$mandatory.' Criteria</h4><p>';  
  $result.=  
     &nested_parse(\$dimension{$dim}{'criteria.'.$id},  
   [@_],{'set_dim_id' => $id});  
  $result.='</p><p class="LC_grade">'.$status_display.'</p>';  
  if ($comment) {  
     $result.='<p class="LC_comment">'.  
  &mt('Comment: [_1]',$comment).'</p>';  
  }  
  $result.='</div>';  
     }      }
  }   }
     }      }
Line 2481  sub end_InstanceText { Line 2468  sub end_InstanceText {
 sub start_Criteria {  sub start_Criteria {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $criteria=&Apache::lonxml::get_all_text('/criteria',$parser,$style);      my $criteria=&Apache::lonxml::get_all_text('/criteria',$parser,$style);
       my $result = '';
     if ($target eq 'web' || $target eq 'webgrade' || $target eq 'grade') {      if ($target eq 'web' || $target eq 'webgrade' || $target eq 'grade') {
  my $dim = &get_dim_id();   my $dim = &get_dim_id();
  my $id=&get_id($parstack,$safeeval);   my $id=&get_id($parstack,$safeeval);
Line 2498  sub start_Criteria { Line 2486  sub start_Criteria {
     $dimension{$dim}{'criteria.'.$id.'.mandatory'}=      $dimension{$dim}{'criteria.'.$id.'.mandatory'}=
  &Apache::lonxml::get_param('Mandatory',$parstack,$safeeval);   &Apache::lonxml::get_param('Mandatory',$parstack,$safeeval);
     push(@{$dimension{$dim}{'criterias'}},$id);      push(@{$dimension{$dim}{'criterias'}},$id);
   
       my $version=&get_version();
       my $task_status = 
    $Apache::lonhomework::history{"resource.$version.0.status"};
       if ($target eq 'web' 
    && ($task_status eq 'pass' || $task_status eq 'fail')) {
    my $status= &get_criteria('status', $version,$dim,$id);
    my $comment=&get_criteria('comment',$version,$dim,$id);
    my $mandatory=($dimension{$dim}{'criteria.'.$id.'.mandatory'} ne 'N');
    if ($mandatory) {
       $mandatory='Mandatory';
    } else {
       $mandatory='Optional';
    }
    my $status_display=$status;
    $status_display=~s/^([a-z])/uc($1)/e;
    $result.=
       '<div class="LC_'.$status.' LC_criteria"><h4>'
       .$mandatory.' Criteria</h4><p>';
    $result.=
       &nested_parse(\$dimension{$dim}{'criteria.'.$id},[@_]);
    $result.='</p><p class="LC_grade">'.$status_display.'</p>';
    if ($comment =~ /\w/) {
       $result.='<p class="LC_comment">'.
    &mt('Comment: [_1]',$comment).'</p>';
    }
    $result.='</div>';
       }
  }   }
     }      }
     return '';      return $result;
 }  }
   
 sub end_Criteria {  sub end_Criteria {
 }  }
   
   sub start_GraderNote {
       my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
       
       if ($target eq 'webgrade') {
    return '<div class="LC_GRADING_gradernote"><b>'.
       &mt('Note to graders:').'</b>';
       }
       my $note=&Apache::lonxml::get_all_text('/gradernote',$parser,$style); 
       return;
   }
   
   sub end_GraderNote {
       my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
   
       if ($target eq 'webgrade') {
    return '</div>';
       }
       return;
   }
   
   
   
 sub proctor_validation_screen {  sub proctor_validation_screen {
     my ($slot) = @_;      my ($slot) = @_;
     my (undef,undef,$domain,$user) = &Apache::lonxml::whichuser();      my (undef,undef,$domain,$user) = &Apache::lonnet::whichuser();
     my $url=&Apache::lonnet::studentphoto($domain,$user,'jpg');      my $url=&Apache::lonnet::studentphoto($domain,$user,'jpg');
     my $name=&Apache::loncommon::plainname($user,$domain);      my $name=&Apache::loncommon::plainname($user,$domain);
           

Removed from v.1.181  
changed lines
  Added in v.1.191


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