Diff for /loncom/homework/inputtags.pm between versions 1.271.2.4 and 1.283

version 1.271.2.4, 2010/12/31 19:10:16 version 1.283, 2011/03/07 21:37:59
Line 354  sub start_textline { Line 354  sub start_textline {
             unless ($newvariation) {              unless ($newvariation) {
         $oldresponse = $Apache::lonhomework::history{"resource.$partid.$id.submission"};          $oldresponse = $Apache::lonhomework::history{"resource.$partid.$id.submission"};
         &Apache::lonxml::debug("oldresponse $oldresponse is ".ref($oldresponse));          &Apache::lonxml::debug("oldresponse $oldresponse is ".ref($oldresponse));
   
         if (ref($oldresponse) eq 'ARRAY') {          if (ref($oldresponse) eq 'ARRAY') {
     $oldresponse = $oldresponse->[$#Apache::inputtags::inputlist];      $oldresponse = $oldresponse->[$#Apache::inputtags::inputlist];
         }          }
Line 685  sub valid_award { Line 684  sub valid_award {
        'UNIT_INVALID_STUDENT', 'UNIT_IRRECONCIBLE',         'UNIT_INVALID_STUDENT', 'UNIT_IRRECONCIBLE',
        'UNIT_FAIL', 'NO_UNIT',         'UNIT_FAIL', 'NO_UNIT',
        'UNIT_NOTNEEDED', 'WANTED_NUMERIC',         'UNIT_NOTNEEDED', 'WANTED_NUMERIC',
        'BAD_FORMULA', 'INTERNAL_ERROR', 'SIG_FAIL', 'INCORRECT',          'BAD_FORMULA', 'NOT_FUNCTION', 'WRONG_FORMAT', 
                                  'INTERNAL_ERROR', 'SIG_FAIL', 'INCORRECT', 
        'MISORDERED_RANK', 'INVALID_FILETYPE',         'MISORDERED_RANK', 'INVALID_FILETYPE',
                                'EXCESS_FILESIZE', 'FILENAME_INUSE',                                  'EXCESS_FILESIZE', 'FILENAME_INUSE', 
        'DRAFT', 'SUBMITTED', 'SUBMITTED_CREDIT',          'DRAFT', 'SUBMITTED', 'SUBMITTED_CREDIT', 
Line 702  sub valid_award { Line 702  sub valid_award {
   'TOO_LONG',    'TOO_LONG',
   'UNIT_INVALID_INSTRUCTOR', 'UNIT_INVALID_STUDENT',    'UNIT_INVALID_INSTRUCTOR', 'UNIT_INVALID_STUDENT',
   'UNIT_IRRECONCIBLE', 'UNIT_FAIL', 'NO_UNIT',    'UNIT_IRRECONCIBLE', 'UNIT_FAIL', 'NO_UNIT',
   'UNIT_NOTNEEDED', 'WANTED_NUMERIC', 'BAD_FORMULA', 'INTERNAL_ERROR',    'UNIT_NOTNEEDED', 'WANTED_NUMERIC', 'BAD_FORMULA',  'NOT_FUNCTION', 
                     'WRONG_FORMAT', 'INTERNAL_ERROR',
   'COMMA_FAIL', 'SIG_FAIL', 'INCORRECT', 'MISORDERED_RANK',    'COMMA_FAIL', 'SIG_FAIL', 'INCORRECT', 'MISORDERED_RANK',
   'INVALID_FILETYPE', 'EXCESS_FILESIZE', 'FILENAME_INUSE',     'INVALID_FILETYPE', 'EXCESS_FILESIZE', 'FILENAME_INUSE', 
                   'DRAFT', 'SUBMITTED',                    'DRAFT', 'SUBMITTED',
Line 800  sub finalizeawards { Line 801  sub finalizeawards {
 }  }
   
 sub decideoutput {  sub decideoutput {
     my ($award,$awarded,$awardmsg,$solved,$previous,$target)=@_;      my ($award,$awarded,$awardmsg,$solved,$previous,$target,$nocorrect)=@_;
   
     my $message='';      my $message='';
     my $button=0;      my $button=0;
Line 818  sub decideoutput { Line 819  sub decideoutput {
     my $part = $Apache::inputtags::part;      my $part = $Apache::inputtags::part;
     my $tohandgrade = &Apache::lonnet::EXT("resource.$part.handgrade");      my $tohandgrade = &Apache::lonnet::EXT("resource.$part.handgrade");
     my $handgrade = ('yes' eq lc($tohandgrade));       my $handgrade = ('yes' eq lc($tohandgrade)); 
   #
   # Should "Computer's Answer" be displayed?
   # Should not be displayed if still answerable,
   # if the problem is handgraded,
   # or if the problem does not give a correct answer
   #
           
     my $computer = ($handgrade)? ''      my $computer = ($handgrade || $nocorrect)? ''
                        : " ".&mt("Computer's answer now shown above.");                         : " ".&mt("Computer's answer now shown above.");
     &Apache::lonxml::debug("handgrade has :$handgrade:");      &Apache::lonxml::debug("handgrade has :$handgrade:");
   
Line 989  sub decideoutput { Line 996  sub decideoutput {
         if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Formula_Answers')};          if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Formula_Answers')};
  $css_class=$possible_class{'not_charged_try'};   $css_class=$possible_class{'not_charged_try'};
  $button=1;   $button=1;
     } elsif ($award eq 'INTERNAL_ERROR') {      } elsif ($award eq 'NOT_FUNCTION') {
           $message = &mt("Not a function").'.';
           $css_class=$possible_class{'not_charged_try'};
           $button=1;
       } elsif ($award eq 'WRONG_FORMAT') {
           $message = &mt("Wrong format").'.';
           $css_class=$possible_class{'not_charged_try'};
           $button=1;
        } elsif ($award eq 'INTERNAL_ERROR') {
         $message = &mt("An internal error occurred while processing your answer. Please try again later.");          $message = &mt("An internal error occurred while processing your answer. Please try again later.");
         $css_class=$possible_class{'not_charged_try'};          $css_class=$possible_class{'not_charged_try'};
         $button=1;          $button=1;
Line 1254  sub setgradedata { Line 1269  sub setgradedata {
  $Apache::lonhomework::results{"resource.$id.previous"} = '0';   $Apache::lonhomework::results{"resource.$id.previous"} = '0';
     }      }
  }   }
     } elsif ( $Apache::lonhomework::history{"resource.$id.solved"} =~      } elsif ( $Apache::lonhomework::history{"resource.$id.awarded"} == 1 ) {
       /^correct/ ) {  
  #delete all data as they student already has it correct   #delete all data as they student already has it correct
  &removealldata($id);   &removealldata($id);
  #and since they didn't do anything we were never here   #and since they didn't do anything we were never here
Line 1266  sub setgradedata { Line 1280  sub setgradedata {
  &Apache::response::add_to_gradingqueue();   &Apache::response::add_to_gradingqueue();
     }      }
     if (($Apache::lonhomework::type eq 'anonsurvey') ||      if (($Apache::lonhomework::type eq 'anonsurvey') ||
         ($Apache::lonhomework::type eq 'anonsurveycred') ||          ($Apache::lonhomework::type eq 'anonsurveycred') || 
         ($Apache::lonhomework::type eq 'randomizetry')) {          ($Apache::lonhomework::type eq 'randomizetry')) {
         $Apache::lonhomework::results{"resource.$id.type"} = $Apache::lonhomework::type;          $Apache::lonhomework::results{"resource.$id.type"} = $Apache::lonhomework::type;
     }      }
Line 1352  sub grade { Line 1366  sub grade {
 }  }
   
 sub get_grade_messages {  sub get_grade_messages {
     my ($id,$prefix,$target,$status) = @_;      my ($id,$prefix,$target,$status,$nocorrect) = @_;
   # nocorrect suppresses "Computer's answer now shown above"
     my ($message,$latemessage,$trystr,$previousmsg);      my ($message,$latemessage,$trystr,$previousmsg);
     my $showbutton = 1;      my $showbutton = 1;
   
Line 1367  sub get_grade_messages { Line 1381  sub get_grade_messages {
  &Apache::lonxml::debug('Getting message');   &Apache::lonxml::debug('Getting message');
  ($showbutton,my $css_class,$message,$previousmsg) =   ($showbutton,my $css_class,$message,$previousmsg) =
     &decideoutput($award,$awarded,$awardmsg,$solved,$previous,      &decideoutput($award,$awarded,$awardmsg,$solved,$previous,
   $target);    $target,(($status eq 'CAN_ANSWER') || $nocorrect));
  if ($target eq 'tex') {   if ($target eq 'tex') {
     $message='\vskip 2 mm '.$message.' ';      $message='\vskip 2 mm '.$message.' ';
  } else {   } else {
Line 1400  sub get_grade_messages { Line 1414  sub get_grade_messages {
     $trystr = '<td><span class="LC_nobreak">'.&mt($tries_text)." $tries";      $trystr = '<td><span class="LC_nobreak">'.&mt($tries_text)." $tries";
     if ($Apache::lonhomework::parsing_a_task) {      if ($Apache::lonhomework::parsing_a_task) {
     } elsif($env{'request.state'} ne 'construct') {      } elsif($env{'request.state'} ne 'construct') {
  $trystr.="/$maxtries";   $trystr.="/".&Apache::lonhtmlcommon::direct_parm_link($maxtries,$env{'request.symb'},'maxtries',$id,$target);
     } else {      } else {
  if (defined($Apache::inputtags::params{'maxtries'})) {   if (defined($Apache::inputtags::params{'maxtries'})) {
     $trystr.="/".$Apache::inputtags::params{'maxtries'};      $trystr.="/".$Apache::inputtags::params{'maxtries'};
Line 1496  sub previous_tries { Line 1510  sub previous_tries {
  $count++;   $count++;
  $count_lookup{$i} = $count;   $count_lookup{$i} = $count;
         my $curr_rndseed = $Apache::lonhomework::history{"$prefix.rndseed"};          my $curr_rndseed = $Apache::lonhomework::history{"$prefix.rndseed"};
   
  my ($previousmsg,$latemessage,$message,$trystr);   my ($previousmsg,$latemessage,$message,$trystr);
   
  ($previousmsg,$latemessage,$message,$trystr) =   ($previousmsg,$latemessage,$message,$trystr) =
Line 1514  sub previous_tries { Line 1527  sub previous_tries {
  ) {   ) {
   
                 my $txt_correct = &mt('Correct');                  my $txt_correct = &mt('Correct');
                   my $awarded = $Apache::lonhomework::history{"$prefix.awarded"};
                   if ($awarded < 1 && $awarded > 0) {
                       $txt_correct=&mt('Partially Correct');
                   } elsif ($awarded < 1) {
                       if ($awarded eq '') {
                           $txt_correct='';
                       } else {
                           $txt_correct=&mt('Incorrect');
                       }
                   }
  $message =~ s{(<td.*?>)(.*?)(</td>)}   $message =~ s{(<td.*?>)(.*?)(</td>)}
                              {$1 <strong>$txt_correct</strong>. $3}s;                               {$1 <strong>$txt_correct</strong>. $3}s;
     }      }
Line 1522  sub previous_tries { Line 1545  sub previous_tries {
                 if ($curr_rndseed ne $lastrndseed) {                  if ($curr_rndseed ne $lastrndseed) {
                     $trystr .= '<br /><span style="color: green; white-space: nowrap; font-style: italic; font-weight: bold; font-size: 80%;">'.&mt('New problem variation this try.').'</span>';                      $trystr .= '<br /><span style="color: green; white-space: nowrap; font-style: italic; font-weight: bold; font-size: 80%;">'.&mt('New problem variation this try.').'</span>';
                 }                  }
             }              } 
     $message =~ s{(</td>)}{ $trystr $1};      $message =~ s{(</td>)}{ $trystr $1};
  }   }
  my ($class) = ($message =~ m{<td.*class="([^"]*)"}); #"   my ($class) = ($message =~ m{<td.*class="([^"]*)"}); #"

Removed from v.1.271.2.4  
changed lines
  Added in v.1.283


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