Diff for /loncom/homework/inputtags.pm between versions 1.218 and 1.219

version 1.218, 2007/03/13 00:21:28 version 1.219, 2007/03/15 02:52:16
Line 957  sub setgradedata { Line 957  sub setgradedata {
     }      }
 }  }
   
   sub find_which_previous {
       my ($version) = @_;
       my $part = $Apache::inputtags::part;
       my (@previous_version);
       foreach my $resp (@Apache::inputtags::response) {
    my $key = "$version:resource.$part.$resp.submission";
    my $submission = $Apache::lonhomework::history{$key};
    my %previous = &Apache::response::check_for_previous($submission,
        $part,$resp,
        $version);
    push(@previous_version,$previous{'version'});
       }
       return &previous_match(\@previous_version,
      scalar(@Apache::inputtags::response));
   }
   
   sub previous_match {
       my ($previous_array,$count) = @_;
       my $match = 0;
       my @matches;
       foreach my $versionar (@$previous_array) {
    foreach my $version (@$versionar) {
       $matches[$version]++;
    }
       }
       my $which=0;
       foreach my $elem (@matches) {
    if ($elem eq $count) {
       $match=1;
       last;
    }
    $which++;
       }
       return ($match,$which);
   }
   
 sub grade {  sub grade {
     my ($target) = @_;      my ($target) = @_;
     my $id = $Apache::inputtags::part;      my $id = $Apache::inputtags::part;
Line 975  sub grade { Line 1011  sub grade {
  my ($finalaward,$msg) = &finalizeawards(\@awards,\@msgs);   my ($finalaward,$msg) = &finalizeawards(\@awards,\@msgs);
  my $previously_used;   my $previously_used;
  if ( $#Apache::inputtags::previous eq $#awards ) {   if ( $#Apache::inputtags::previous eq $#awards ) {
     my $match=0;      my ($match) =
     my @matches;   &previous_match(\@Apache::inputtags::previous_version,
     foreach my $versionar (@Apache::inputtags::previous_version) {   scalar(@Apache::inputtags::response));
  foreach my $version (@$versionar) {      
     $matches[$version]++;  
  }  
     }  
     foreach my $elem (@matches) {if ($elem eq ($#awards+1)) {$match=1;}}  
     if ($match) {      if ($match) {
  $previously_used = 'PREVIOUSLY_LAST';   $previously_used = 'PREVIOUSLY_LAST';
  foreach my $value (@Apache::inputtags::previous) {   foreach my $value (@Apache::inputtags::previous) {
Line 1121  sub previous_tries { Line 1153  sub previous_tries {
     my ($id,$target) = @_;      my ($id,$target) = @_;
     my $output;      my $output;
     my $status = $Apache::inputtags::status['-1'];      my $status = $Apache::inputtags::status['-1'];
       
       my $count;
       my %count_lookup;
   
     foreach my $i (1..$Apache::lonhomework::history{'version'}) {      foreach my $i (1..$Apache::lonhomework::history{'version'}) {
  my $prefix = $i.":resource.$id";   my $prefix = $i.":resource.$id";
   
  next if (!exists($Apache::lonhomework::history{"$prefix.award"}));   next if (!exists($Apache::lonhomework::history{"$prefix.award"}));
    $count++;
    $count_lookup{$i} = $count;
   
  my ($previousmsg,$latemessage,$message,$trystr);   my ($previousmsg,$latemessage,$message,$trystr);
   
  ($previousmsg,$latemessage,$message,$trystr) =   ($previousmsg,$latemessage,$message,$trystr) =
Line 1134  sub previous_tries { Line 1172  sub previous_tries {
     undef($trystr);      undef($trystr);
  }   }
   
  if ($previousmsg eq '') { $previousmsg='<td></td>'; }   if ($previousmsg ne '') {
  if ($trystr eq '') { $trystr = '<td></td>'; }      my ($match,$which) = &find_which_previous($i);
       $message=$previousmsg;
       my $previous = $count_lookup{$which};
       $message =~ s{(</td>)}{ as submission $previous $1};
       
    } elsif ($trystr ne '') { 
       ($trystr) = ($trystr =~ m{(\d+)/\d+});
       $message =~ s{(<td.*?>)}{$1 $trystr };
    }
   
   
  $output.='<tr>';   $output.='<tr>';
  $output.=$message.$previousmsg.$trystr;   $output.='<td align ="center">'.$count.'</td>';
    $output.=$message;
   
  foreach my $resid (@Apache::inputtags::response) {   foreach my $resid (@Apache::inputtags::response) {
     my $prefix = $prefix.".$resid";      my $prefix = $prefix.".$resid";
Line 1154  sub previous_tries { Line 1202  sub previous_tries {
  $output.='<td></td>';   $output.='<td></td>';
     }      }
  }   }
  $output.='</tr>';   $output.='</tr>'."\n";
     }      }
     return if ($output eq '');      return if ($output eq '');
       my $headers = 
     $output ='<table class="LC_prior_tries">'.$output.'</table>';   '<tr>'.'<th>'.&mt('Submission #').'</th><th>'.&mt('Try').
    '</th><th colspan="'.scalar(@Apache::inputtags::response).'">'.
    &mt('Submitted Answer').'</th>';
       $output ='<table class="LC_prior_tries">'.$headers.$output.'</table>';
       $output .='<pre>'.join("\n",@Apache::inputtags::previous_version).'</pre>';
     #return $output;      #return $output;
     $output=~s/\\/\\\\/g;      $output=~s/\\/\\\\/g;
     $output=~s/\'/\\\'/g;      $output=~s/\'/\\\'/g;

Removed from v.1.218  
changed lines
  Added in v.1.219


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