Diff for /loncom/homework/grades.pm between versions 1.428.2.1 and 1.430

version 1.428.2.1, 2007/08/24 07:15:27 version 1.430, 2007/08/21 18:41:27
Line 45  use LONCAPA; Line 45  use LONCAPA;
   
 use POSIX qw(floor);  use POSIX qw(floor);
   
 my %perm;  my %perm=();
   
 # ----- These first few routines are general use routines.----  # ----- These first few routines are general use routines.----
 #  #
Line 194  sub showResourceInfo { Line 194  sub showResourceInfo {
     return $result,$responseType,$hdgrade,$partlist,$handgrade;      return $result,$responseType,$hdgrade,$partlist,$handgrade;
 }  }
   
 sub reset_caches {  
     &reset_analyze_cache();  
     &reset_perm();  
 }  
   
 {  
     my %analyze_cache;  
   
     sub reset_analyze_cache {  sub get_order {
  undef(%analyze_cache);      my ($partid,$respid,$symb,$uname,$udom)=@_;
     }      my (undef,undef,$url)=&Apache::lonnet::decode_symb($symb);
       $url=&Apache::lonnet::clutter($url);
     sub get_analyze {      my $subresult=&Apache::lonnet::ssi($url,
  my ($symb,$uname,$udom)=@_;         ('grade_target' => 'analyze'),
  my $key = "$symb\0$uname\0$udom";         ('grade_domain' => $udom),
  return $analyze_cache{$key} if (exists($analyze_cache{$key}));         ('grade_symb' => $symb),
          ('grade_courseid' => 
  my (undef,undef,$url)=&Apache::lonnet::decode_symb($symb);          $env{'request.course.id'}),
  $url=&Apache::lonnet::clutter($url);         ('grade_username' => $uname));
  my $subresult=&Apache::lonnet::ssi($url,      (undef,$subresult)=split(/_HASH_REF__/,$subresult,2);
    ('grade_target' => 'analyze'),      my %analyze=&Apache::lonnet::str2hash($subresult);
    ('grade_domain' => $udom),      return ($analyze{"$partid.$respid.shown"});
    ('grade_symb' => $symb),  
    ('grade_courseid' =>   
     $env{'request.course.id'}),  
    ('grade_username' => $uname));  
  (undef,$subresult)=split(/_HASH_REF__/,$subresult,2);  
  my %analyze=&Apache::lonnet::str2hash($subresult);  
  return $analyze_cache{$key} = \%analyze;  
     }  
   
     sub get_order {  
  my ($partid,$respid,$symb,$uname,$udom)=@_;  
  my $analyze = &get_analyze($symb,$uname,$udom);  
  return $analyze->{"$partid.$respid.shown"};  
     }  
   
     sub get_radiobutton_correct_foil {  
  my ($partid,$respid,$symb,$uname,$udom)=@_;  
  my $analyze = &get_analyze($symb,$uname,$udom);  
  foreach my $foil (@{&get_order($partid,$respid,$symb,$uname,$udom)}) {  
     if ($analyze->{"$partid.$respid.foil.value.$foil"} eq 'true') {  
  return $foil;  
     }  
  }  
     }  
 }  }
   
 #--- Clean response type for display  #--- Clean response type for display
 #--- Currently filters option/rank/radiobutton/match/essay/Task  #--- Currently filters option/rank/radiobutton/match/essay/Task
 #        response types only.  #        response types only.
Line 290  sub cleanRecord { Line 258  sub cleanRecord {
     } elsif ($response eq 'radiobutton') {      } elsif ($response eq 'radiobutton') {
  my %answer=&Apache::lonnet::str2hash($answer);   my %answer=&Apache::lonnet::str2hash($answer);
  my ($toprow,$bottomrow);   my ($toprow,$bottomrow);
  my $correct =    my $correct=($order->[0])+1;
     &get_radiobutton_correct_foil($partid,$respid,$symb,$uname,$udom);   for (my $i=1;$i<=$#$order;$i++) {
  foreach my $foil (@$order) {      my $foil=$order->[$i];
     if (exists($answer{$foil})) {      if (exists($answer{$foil})) {
  if ($foil eq $correct) {   if ($i == $correct) {
     $toprow.='<td><b>true</b></td>';      $toprow.='<td><b>true</b></td>';
  } else {   } else {
     $toprow.='<td><i>true</i></td>';      $toprow.='<td><i>true</i></td>';
Line 3003  sub viewgrades { Line 2971  sub viewgrades {
  '<input type="hidden" name="probTitle" value="'.$env{'form.probTitle'}.'" />'."\n";   '<input type="hidden" name="probTitle" value="'.$env{'form.probTitle'}.'" />'."\n";
   
     my $sectionClass;      my $sectionClass;
       my $section_display = join (", ",&Apache::loncommon::get_env_multiple('form.section'));
     if ($env{'form.section'} eq 'all') {      if ($env{'form.section'} eq 'all') {
  $sectionClass='Class </h3>';   $sectionClass='Class </h3>';
     } elsif ($env{'form.section'} eq 'none') {      } elsif ($env{'form.section'} eq 'none') {
  $sectionClass='Students in no Section </h3>';   $sectionClass='Students in no Section </h3>';
     } else {      } else {
  $sectionClass='Students in Section '.$env{'form.section'}.'</h3>';   $sectionClass='Students in Section(s) '.$section_display.'</h3>';
     }      }
     $result.='<h3>Assign Common Grade To '.$sectionClass;      $result.='<h3>Assign Common Grade To '.$sectionClass;
     $result.= '<table border=0><tr><td bgcolor="#777777">'."\n".      $result.= '<table border=0><tr><td bgcolor="#777777">'."\n".
Line 6964  GRADINGMENUJS Line 6933  GRADINGMENUJS
   
     $result.='<table width="100%" border="0">';      $result.='<table width="100%" border="0">';
     $result.='<tr bgcolor="#ffffe6" valign="top"><td>'."\n".      $result.='<tr bgcolor="#ffffe6" valign="top"><td>'."\n".
  '&nbsp;'.&mt('Select Section').': <select name="section">'."\n";   '&nbsp;'.&mt('Select Section').': <select name="section" multiple="multiple" size="3">'."\n";
     if (ref($sections)) {      if (ref($sections)) {
  foreach (sort (@$sections)) {   foreach (sort (@$sections)) {
     $result.='<option value="'.$_.'" '.      $result.='<option value="'.$_.'" '.
Line 7532  ENDHEADER Line 7501  ENDHEADER
 sub handler {  sub handler {
     my $request=$_[0];      my $request=$_[0];
   
     &reset_caches();      &reset_perm();
     if ($env{'browser.mathml'}) {      if ($env{'browser.mathml'}) {
  &Apache::loncommon::content_type($request,'text/xml');   &Apache::loncommon::content_type($request,'text/xml');
     } else {      } else {
Line 7576  sub handler { Line 7545  sub handler {
  }   }
     } else {      } else {
  &init_perm();   &init_perm();
   # &Apache::lonnet::logthis("command is $command");
   # foreach my $key (keys %perm) {
   #    &Apache::lonnet::logthis("a key is $key");
   # }
  if ($command eq 'submission' && $perm{'vgr'}) {   if ($command eq 'submission' && $perm{'vgr'}) {
     ($env{'form.student'} eq '' ? &listStudents($request) : &submission($request,0,0));      ($env{'form.student'} eq '' ? &listStudents($request) : &submission($request,0,0));
  } elsif ($command eq 'pickStudentPage' && $perm{'vgr'}) {   } elsif ($command eq 'pickStudentPage' && $perm{'vgr'}) {
Line 7645  sub handler { Line 7618  sub handler {
  }   }
     }      }
     $request->print(&Apache::loncommon::end_page());      $request->print(&Apache::loncommon::end_page());
     &reset_caches();  
     return '';      return '';
 }  }
   

Removed from v.1.428.2.1  
changed lines
  Added in v.1.430


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