Diff for /loncom/homework/grades.pm between versions 1.596.2.12.2.30 and 1.596.2.12.2.34

version 1.596.2.12.2.30, 2014/08/25 22:17:54 version 1.596.2.12.2.34, 2015/03/17 12:37:40
Line 465  sub cleanRecord { Line 465  sub cleanRecord {
     $env{'form.kwstyle'}  = $keyhash{$loginuser.'_kwstyle'} ne '' ? $keyhash{$loginuser.'_kwstyle'} : '';      $env{'form.kwstyle'}  = $keyhash{$loginuser.'_kwstyle'} ne '' ? $keyhash{$loginuser.'_kwstyle'} : '';
     $env{'form.'.$symb} = 1; # so that we don't have to read it from disk for multiple sub of the same prob.      $env{'form.'.$symb} = 1; # so that we don't have to read it from disk for multiple sub of the same prob.
  }   }
  return '<br /><br /><blockquote><tt>'.&keywords_highlight(&HTML::Entities::encode($answer, '"<>&')).'</tt></blockquote>';   return '<br /><br /><blockquote><tt>'.&keywords_highlight($answer).'</tt></blockquote>';
     } elsif ( $response eq 'organic') {      } elsif ( $response eq 'organic') {
         my $result=&mt('Smile representation: [_1]',          my $result=&mt('Smile representation: [_1]',
                            '"<tt>'.&HTML::Entities::encode($answer, '"<>&').'</tt>"');                             '"<tt>'.&HTML::Entities::encode($answer, '"<>&').'</tt>"');
Line 1372  sub sub_page_js { Line 1372  sub sub_page_js {
     }      }
  }   }
     }      }
       
  }   }
     }      }
       
  }   }
  if (val == "Grade Student") {   if (val == "Grade Student") {
     formname.showgrading.value = "yes";      formname.showgrading.value = "yes";
Line 2401  sub submission { Line 2399  sub submission {
  $request->print(&displaySubByDates($symb,\%record,$parts,$responseType,$checkIcon,$uname,$udom));   $request->print(&displaySubByDates($symb,\%record,$parts,$responseType,$checkIcon,$uname,$udom));
     }      }
     if ($env{'form.lastSub'} =~ /^(last|all)$/) {      if ($env{'form.lastSub'} =~ /^(last|all)$/) {
           my $identifier = (&canmodify($usec)? $counter : '');
  $request->print(&Apache::loncommon::get_previous_attempt($symb,$uname,$udom,   $request->print(&Apache::loncommon::get_previous_attempt($symb,$uname,$udom,
  $env{'request.course.id'},   $env{'request.course.id'},
  $last,'.submission',   $last,'.submission',
  'Apache::grades::keywords_highlight'));   'Apache::grades::keywords_highlight',
                                                                    $usec,$identifier));
     }      }
   
     $request->print('<input type="hidden" name="unamedom'.$counter.'" value="'.$uname.':'      $request->print('<input type="hidden" name="unamedom'.$counter.'" value="'.$uname.':'
Line 2632  sub get_last_submission { Line 2632  sub get_last_submission {
             }              }
             unless ($hide) {              unless ($hide) {
                 if (@randomize) {                  if (@randomize) {
                     foreach my $id (@hidden) {                      foreach my $id (@randomize) {
                         if ($key =~ /^\Q$id\E/) {                          if ($key =~ /^\Q$id\E/) {
                             $hide = 'rand';                              $hide = 'rand';
                             last;                              last;
Line 2863  sub processHandGrade { Line 2863  sub processHandGrade {
  my $ctr = 0;   my $ctr = 0;
  while ($ctr < $ngrade) {   while ($ctr < $ngrade) {
     my ($uname,$udom) = split(/:/,$env{'form.unamedom'.$ctr});      my ($uname,$udom) = split(/:/,$env{'form.unamedom'.$ctr});
     my ($errorflag,$pts,$wgt) = &saveHandGrade($request,$symb,$uname,$udom,$ctr);      my ($errorflag,$pts,$wgt,$numhidden) = 
                   &saveHandGrade($request,$symb,$uname,$udom,$ctr);
     if ($errorflag eq 'no_score') {      if ($errorflag eq 'no_score') {
  $ctr++;   $ctr++;
  next;   next;
Line 2876  sub processHandGrade { Line 2877  sub processHandGrade {
  $ctr++;   $ctr++;
  next;   next;
     }      }
               if ($numhidden) {
                   $request->print(
                       '<span class="LC_info">'
                      .&mt('For [_1]: [quant,_2,transaction] hidden',"$uname:$udom",$numhidden)
                      .'</span><br />');
               }
     my $includemsg = $env{'form.includemsg'.$ctr};      my $includemsg = $env{'form.includemsg'.$ctr};
     my ($subject,$message,$msgstatus) = ('','','');      my ($subject,$message,$msgstatus) = ('','','');
     my $restitle = &Apache::lonnet::gettitle($symb);      my $restitle = &Apache::lonnet::gettitle($symb);
Line 3107  sub saveHandGrade { Line 3114  sub saveHandGrade {
     my %record = &Apache::lonnet::restore($symb,$env{'request.course.id'},$domain,$stuname);      my %record = &Apache::lonnet::restore($symb,$env{'request.course.id'},$domain,$stuname);
     my @parts_graded;      my @parts_graded;
     my %newrecord  = ();      my %newrecord  = ();
     my ($pts,$wgt) = ('','');      my ($pts,$wgt,$totchg) = ('','',0);
     my %aggregate = ();      my %aggregate = ();
     my $aggregateflag = 0;      my $aggregateflag = 0;
       if ($env{'form.HIDE'.$newflg}) {
           my ($version,$parts) = split(/:/,$env{'form.HIDE'.$newflg},2);
           my $numchgs = &makehidden($version,$parts,\%record,$symb,$domain,$stuname,1);
           $totchg += $numchgs;
       }
     my @parts = split(/:/,$env{'form.partlist'.$newflg});      my @parts = split(/:/,$env{'form.partlist'.$newflg});
     foreach my $new_part (@parts) {      foreach my $new_part (@parts) {
  #collaborator ($submi may vary for different parts   #collaborator ($submi may vary for different parts
Line 3212  sub saveHandGrade { Line 3224  sub saveHandGrade {
         &Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate,          &Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate,
       $cdom,$cnum);        $cdom,$cnum);
     }      }
     return ('',$pts,$wgt);      return ('',$pts,$wgt,$totchg);
   }
   
   sub makehidden {
       my ($version,$parts,$record,$symb,$domain,$stuname,$tolog) = @_;
       return unless (ref($record) eq 'HASH');
       my %modified;
       my $numchanged = 0;
       if (exists($record->{$version.':keys'})) {
           my $partsregexp = $parts;
           $partsregexp =~ s/,/|/g;
           foreach my $key (split(/\:/,$record->{$version.':keys'})) {
               if ($key =~ /^resource\.(?:$partsregexp)\.([^\.]+)$/) {
                    my $item = $1;
                    unless (($item eq 'solved') || ($item =~ /^award(|msg|ed)$/)) {
                        $modified{$key} = $record->{$version.':'.$key};
                    }
               } elsif ($key =~ m{^(resource\.(?:$partsregexp)\.[^\.]+\.)(.+)$}) {
                   $modified{$1.'hidden'.$2} = $record->{$version.':'.$key};
               } elsif ($key =~ /^(ip|timestamp|host)$/) {
                   $modified{$key} = $record->{$version.':'.$key};
               }
           }
           if (keys(%modified)) {
               if (&Apache::lonnet::putstore($env{'request.course.id'},$symb,$version,\%modified,
                                             $domain,$stuname,$tolog) eq 'ok') {
                   $numchanged ++;
               }
           }
       }
       return $numchanged;
 }  }
   
 sub check_and_remove_from_queue {  sub check_and_remove_from_queue {
Line 4914  sub displayPage { Line 4956  sub displayPage {
  }   }
     } elsif ($env{'form.lastSub'} eq 'all') {      } elsif ($env{'form.lastSub'} eq 'all') {
  my $last = ($env{'form.lastSub'} eq 'last' ? 'last' : '');   my $last = ($env{'form.lastSub'} eq 'last' ? 'last' : '');
                   my $identifier = (&canmodify($usec)? $prob : '');
  $studentTable.=&Apache::loncommon::get_previous_attempt($symbx,$uname,$udom,   $studentTable.=&Apache::loncommon::get_previous_attempt($symbx,$uname,$udom,
  $env{'request.course.id'},   $env{'request.course.id'},
  '','.submission');   '','.submission',undef,
                                                                           $usec,$identifier);
     
     }      }
     if (&canmodify($usec)) {      if (&canmodify($usec)) {
Line 5027  sub displaySubByDates { Line 5071  sub displaySubByDates {
         } else {          } else {
     $displaySub[0].=&mt('Trial: [_1]',      $displaySub[0].=&mt('Trial: [_1]',
     $$record{"$where.$partid.tries"});      $$record{"$where.$partid.tries"});
                             if ($rndseed || $lastrndseed{$partid}) {                              if (($rndseed ne '')  && ($lastrndseed{$partid} ne '')) {
                                 if ($rndseed ne $lastrndseed{$partid}) {                                  if ($rndseed ne $lastrndseed{$partid}) {
                                     $newvariation = '&nbsp;('.&mt('New variation this try').')';                                      $newvariation = '&nbsp;('.&mt('New variation this try').')';
                                 }                                  }
                             }                              }
                               $lastrndseed{$partid} = $rndseed;
         }          }
         my $responseType=($isTask ? 'Task'          my $responseType=($isTask ? 'Task'
                                               : $responseType->{$partid}->{$responseId});                                                : $responseType->{$partid}->{$responseId});
Line 5132  sub updateGradeByPage { Line 5177  sub updateGradeByPage {
   
     $iterator->next(); # skip the first BEGIN_MAP      $iterator->next(); # skip the first BEGIN_MAP
     my $curRes = $iterator->next(); # for "current resource"      my $curRes = $iterator->next(); # for "current resource"
     my ($depth,$question,$prob,$changeflag)= (1,1,1,0);      my ($depth,$question,$prob,$changeflag,$hideflag)= (1,1,1,0,0);
     while ($depth > 0) {      while ($depth > 0) {
         if($curRes == $iterator->BEGIN_MAP) { $depth++; }          if($curRes == $iterator->BEGIN_MAP) { $depth++; }
         if($curRes == $iterator->END_MAP) { $depth--; }          if($curRes == $iterator->END_MAP) { $depth--; }
Line 5153  sub updateGradeByPage { Line 5198  sub updateGradeByPage {
     my @displayPts=();      my @displayPts=();
             my %aggregate = ();              my %aggregate = ();
             my $aggregateflag = 0;              my $aggregateflag = 0;
               if ($env{'form.HIDE'.$prob}) {
                   my %record = &Apache::lonnet::restore($symbx,$env{'request.course.id'},$udom,$uname);
                   my ($version,$parts) = split(/:/,$env{'form.HIDE'.$prob},2);
                   my $numchgs = &makehidden($version,$parts,\%record,$symbx,$udom,$uname,1);
                   $hideflag += $numchgs;
               }
     foreach my $partid (@{$parts}) {      foreach my $partid (@{$parts}) {
  my $newpts = $env{'form.GD_BOX'.$question.'_'.$partid};   my $newpts = $env{'form.GD_BOX'.$question.'_'.$partid};
  my $oldpts = $env{'form.oldpts'.$question.'_'.$partid};   my $oldpts = $env{'form.oldpts'.$question.'_'.$partid};
Line 5244  sub updateGradeByPage { Line 5295  sub updateGradeByPage {
     $studentTable.=&show_grading_menu_form($env{'form.symb'});      $studentTable.=&show_grading_menu_form($env{'form.symb'});
     my $grademsg=($changeflag == 0 ? &mt('No score was changed or updated.') :      my $grademsg=($changeflag == 0 ? &mt('No score was changed or updated.') :
   &mt('The scores were changed for [quant,_1,problem].',    &mt('The scores were changed for [quant,_1,problem].',
   $changeflag));    $changeflag).'<br />');
     $request->print($grademsg.$studentTable);      my $hidemsg=($hideflag == 0 ? '' :
                    &mt('Submissions were marked "hidden" for [quant,_1,transaction].',
                        $hideflag).'<br />');
       $request->print($hidemsg.$grademsg.$studentTable);
   
     return '';      return '';
 }  }
Line 5894  sub username_to_idmap { Line 5948  sub username_to_idmap {
     my ($classlist)= @_;      my ($classlist)= @_;
     my %idmap;      my %idmap;
     foreach my $student (keys(%$classlist)) {      foreach my $student (keys(%$classlist)) {
  $idmap{$classlist->{$student}->[&Apache::loncoursedata::CL_ID]}=          my $id = $classlist->{$student}->[&Apache::loncoursedata::CL_ID];
     $student;          unless ($id eq '') {
               if (!exists($idmap{$id})) {
                   $idmap{$id} = $student;
               } else {
                   my $status = $classlist->{$student}->[&Apache::loncoursedata::CL_STATUS];
                   if ($status eq 'Active') {
                       $idmap{$id} = $student;
                   }
               }
           }
     }      }
     return %idmap;      return %idmap;
 }  }

Removed from v.1.596.2.12.2.30  
changed lines
  Added in v.1.596.2.12.2.34


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