Diff for /loncom/homework/inputtags.pm between versions 1.109 and 1.123

version 1.109, 2003/07/15 21:26:23 version 1.123, 2003/11/16 03:23:17
Line 31  package Apache::inputtags; Line 31  package Apache::inputtags;
 use HTML::Entities();  use HTML::Entities();
 use strict;  use strict;
 use Apache::loncommon;  use Apache::loncommon;
   use Apache::lonlocal;
   
 BEGIN {  BEGIN {
   &Apache::lonxml::register('Apache::inputtags',('hiddenline','textfield','textline'));    &Apache::lonxml::register('Apache::inputtags',('hiddenline','textfield','textline'));
Line 111  sub start_textfield { Line 112  sub start_textfield {
  if ( $cols eq '') { $cols = 80; }   if ( $cols eq '') { $cols = 80; }
  my $rows = &Apache::lonxml::get_param('rows',$parstack,$safeeval);   my $rows = &Apache::lonxml::get_param('rows',$parstack,$safeeval);
  if ( $rows eq '') { $rows = 10; }   if ( $rows eq '') { $rows = 10; }
  $result= '<textarea name="HWVAL_'.$resid.'" '.   $result= '<textarea wrap="hard" name="HWVAL_'.$resid.'" '.
     "rows=\"$rows\" cols=\"$cols\">".$oldresponse;      "rows=\"$rows\" cols=\"$cols\">".$oldresponse;
  if ($oldresponse ne '') {   if ($oldresponse ne '') {
     #get rid of any startup text if the user has already responded      #get rid of any startup text if the user has already responded
Line 144  sub start_textfield { Line 145  sub start_textfield {
     } else {      } else {
       $result=$token->[4];        $result=$token->[4];
     }      }
     my $bodytext=&Apache::lonxml::get_all_text("/textfield",$parser);      $result.=&Apache::edit::modifiedfield("/textfield",$parser);
     $result.=&Apache::edit::modifiedfield();  
   } elsif ($target eq 'tex') {    } elsif ($target eq 'tex') {
       my $number_of_lines = &Apache::lonxml::get_param('rows',$parstack,$safeeval);        my $number_of_lines = &Apache::lonxml::get_param('rows',$parstack,$safeeval);
       my $width_of_box = &Apache::lonxml::get_param('cols',$parstack,$safeeval);        my $width_of_box = &Apache::lonxml::get_param('cols',$parstack,$safeeval);
Line 332  sub decideoutput { Line 332  sub decideoutput {
  'not_charged_try' => '#ffffaa',   'not_charged_try' => '#ffffaa',
  'no_message' => '#fffff',   'no_message' => '#fffff',
       );        );
   if ($previous) { $previousmsg='You have entered that answer before'; }    if ($previous) { $previousmsg=&mt('You have entered that answer before'); }
   
   if      ($solved =~ /^correct/) {    if      ($solved =~ /^correct/) {
       if ($award eq 'ASSIGNED_SCORE') {        if ($award eq 'ASSIGNED_SCORE') {
   $message = "A score has been assigned.";    $message = &mt("A score has been assigned.");
       } else {        } else {
   if ($target eq 'tex') {    if ($target eq 'tex') {
       $message = '\textbf{You are correct}.';        $message = '\textbf{'.&mt('You are correct.').'}';
   } else {    } else {
       $message = "<b>You are correct.</b>";        $message = "<b>".&mt('You are correct.')."</b>";
   }    }
           unless ($ENV{'course.'.            unless ($ENV{'course.'.
    $ENV{'request.course.id'}.     $ENV{'request.course.id'}.
    '.disable_receipt_display'} eq 'yes') {      '.disable_receipt_display'} eq 'yes') { 
       $message.='<br />Your receipt is '.&Apache::lonnet::receipt().        $message.=(($target eq 'web')?'<br />':' ').
   &Apache::loncommon::help_open_topic('Receipt');    &mt('Your receipt is').' '.&Apache::lonnet::receipt().
          (($target eq 'web')?&Apache::loncommon::help_open_topic('Receipt'):'');
   }    }
       }        }
       $bgcolor=$possiblecolors{'correct'};        $bgcolor=$possiblecolors{'correct'};
       $button=0;        $button=0;
       $previousmsg='';        $previousmsg='';
   } elsif ($solved =~ /^excused/) {    } elsif ($solved =~ /^excused/) {
       $message = "<b>You are excused from the problem.</b>";        if ($target eq 'tex') {
     $message = ' \textbf{'.&mt('You are excused from the problem.').'} ';
         } else {
     $message = "<b>".&mt('You are excused from the problem.')."</b>";
         }
       $bgcolor=$possiblecolors{'charged_try'};        $bgcolor=$possiblecolors{'charged_try'};
       $button=0;        $button=0;
       $previousmsg='';        $previousmsg='';
   } elsif ($award eq 'EXACT_ANS' || $award eq 'APPROX_ANS' ) {    } elsif ($award eq 'EXACT_ANS' || $award eq 'APPROX_ANS' ) {
       if ($solved =~ /^incorrect/ || $solved eq '') {        if ($solved =~ /^incorrect/ || $solved eq '') {
   $message = "Incorrect";    $message = &mt("Incorrect");
   $bgcolor=$possiblecolors{'charged_try'};    $bgcolor=$possiblecolors{'charged_try'};
   $button=1;    $button=1;
       } else {        } else {
   $message = "<b>You are correct.</b>";    $message = "<b>".&mt('You are correct.')."</b>";
           unless ($ENV{'course.'.            unless ($ENV{'course.'.
    $ENV{'request.course.id'}.     $ENV{'request.course.id'}.
    '.disable_receipt_display'} eq 'yes') {      '.disable_receipt_display'} eq 'yes') { 
               $message.='<br />Your receipt is '.&Apache::lonnet::receipt().        $message.=(($target eq 'web')?'<br />':' ').
   &Apache::loncommon::help_open_topic('Receipt');    'Your receipt is '.&Apache::lonnet::receipt().
          (($target eq 'web')?&Apache::loncommon::help_open_topic('Receipt'):'');
   }    }
   $bgcolor=$possiblecolors{'correct'};    $bgcolor=$possiblecolors{'correct'};
   $button=0;    $button=0;
Line 380  sub decideoutput { Line 386  sub decideoutput {
       $bgcolor=$possiblecolors{'no_feedback'};        $bgcolor=$possiblecolors{'no_feedback'};
       $button=1;        $button=1;
   } elsif ($award eq 'MISSING_ANSWER') {    } elsif ($award eq 'MISSING_ANSWER') {
       $message = 'Some parts were not submitted';        $message = &mt('Some parts were not submitted.');
       $bgcolor=$possiblecolors{'not_charged_try'};        $bgcolor=$possiblecolors{'not_charged_try'};
       $button = 1;        $button = 1;
   } elsif ($award eq 'ERROR') {    } elsif ($award eq 'ERROR') {
       $message = 'An error occured while grading your answer.';        $message = &mt('An error occured while grading your answer.');
       $bgcolor=$possiblecolors{'not_charged_try'};        $bgcolor=$possiblecolors{'not_charged_try'};
       $button = 1;        $button = 1;
   } elsif ($award eq 'TOO_LONG') {    } elsif ($award eq 'TOO_LONG') {
       $message = "The submitted answer was too long.";        $message = &mt("The submitted answer was too long.");
       $bgcolor=$possiblecolors{'not_charged_try'};        $bgcolor=$possiblecolors{'not_charged_try'};
       $button=1;        $button=1;
   } elsif ($award eq 'WANTED_NUMERIC') {    } elsif ($award eq 'WANTED_NUMERIC') {
       $message = "This question expects a numeric answer";        $message = &mt("This question expects a numeric answer.");
       $bgcolor=$possiblecolors{'not_charged_try'};        $bgcolor=$possiblecolors{'not_charged_try'};
       $button=1;        $button=1;
   } elsif ($award eq 'MISORDERED_RANK') {    } elsif ($award eq 'MISORDERED_RANK') {
       $message = 'You have provided an invalid ranking, please refer to '.        $message = &mt('You have provided an invalid ranking');
   &Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems').'.';        if ($target ne 'tex') {
     $message.=', '.&mt('please refer to').' '.&Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems').'.';
         }
       $bgcolor=$possiblecolors{'not_charged_try'};        $bgcolor=$possiblecolors{'not_charged_try'};
       $button=1;        $button=1;
   } elsif ($award eq 'INVALID_FILETYPE') {    } elsif ($award eq 'INVALID_FILETYPE') {
       $message = 'The filetype extension of the file you uploaded is not allowed.';        $message = &mt('The filetype extension of the file you uploaded is not allowed.');
       $bgcolor=$possiblecolors{'not_charged_try'};        $bgcolor=$possiblecolors{'not_charged_try'};
       $button=1;        $button=1;
   } elsif ($award eq 'SIG_FAIL') {    } elsif ($award eq 'SIG_FAIL') {
       $message = "Please adjust significant figures.";# you provided %s significant figures";        $message = &mt("Significant figures are incorrect, submission was not graded.");# you provided %s significant figures";
       $bgcolor=$possiblecolors{'not_charged_try'};        $bgcolor=$possiblecolors{'not_charged_try'};
       $button=1;        $button=1;
   } elsif ($award eq 'UNIT_FAIL') {    } elsif ($award eq 'UNIT_FAIL') {
       $message = "Units incorrect. ".        $message = &mt("Units incorrect.");
        &Apache::loncommon::help_open_topic('Physical_Units'); #Computer reads units as %s";        if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');} #Computer reads units as %s";
       $bgcolor=$possiblecolors{'not_charged_try'};        $bgcolor=$possiblecolors{'not_charged_try'};
       $button=1;        $button=1;
   } elsif ($award eq 'UNIT_NOTNEEDED') {    } elsif ($award eq 'UNIT_NOTNEEDED') {
       $message = "Only a number required.";# Computer reads units of %s";        $message = &mt("Only a number required.");# Computer reads units of %s";
       $bgcolor=$possiblecolors{'not_charged_try'};        $bgcolor=$possiblecolors{'not_charged_try'};
       $button=1;        $button=1;
   } elsif ($award eq 'NO_UNIT') {    } elsif ($award eq 'NO_UNIT') {
       $message = "Units required".        $message = &mt("Units required");
   &Apache::loncommon::help_open_topic('Physical_Units');        if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units')};
       $bgcolor=$possiblecolors{'not_charged_try'};        $bgcolor=$possiblecolors{'not_charged_try'};
       $button=1;        $button=1;
   } elsif ($award eq 'BAD_FORMULA') {    } elsif ($award eq 'BAD_FORMULA') {
       $message = "Unable to understand formula";        $message = &mt("Unable to understand formula");
       $bgcolor=$possiblecolors{'not_charged_try'};        $bgcolor=$possiblecolors{'not_charged_try'};
       $button=1;        $button=1;
   } elsif ($award eq 'INCORRECT') {    } elsif ($award eq 'INCORRECT') {
       $message = "Incorrect";        $message = &mt("Incorrect");
       $bgcolor=$possiblecolors{'charged_try'};        $bgcolor=$possiblecolors{'charged_try'};
       $button=1;        $button=1;
   } elsif ($award eq 'SUBMITTED') {    } elsif ($award eq 'SUBMITTED') {
       $message = "Your submission has been recorded.";        $message = &mt("Your submission has been recorded.");
       $bgcolor=$possiblecolors{'correct'};        $bgcolor=$possiblecolors{'correct'};
       $button=1;        $button=1;
   } elsif ($award eq 'DRAFT') {    } elsif ($award eq 'DRAFT') {
Line 443  sub decideoutput { Line 451  sub decideoutput {
       $bgcolor=$possiblecolors{'correct'};        $bgcolor=$possiblecolors{'correct'};
       $button=0;        $button=0;
   } else {    } else {
       $message = "Unknown message: $award";        $message = &mt("Unknown message").": $award";
       $button=1;        $button=1;
   }    }
   if (lc($Apache::lonhomework::problemstatus) eq 'no') {    if (lc($Apache::lonhomework::problemstatus) eq 'no'  && 
       $message = "Answer Submitted";        $Apache::inputtags::status[-1] ne 'SHOW_ANSWER') {
         $message = &mt("Answer Submitted");
       $bgcolor=$possiblecolors{'correct'};        $bgcolor=$possiblecolors{'correct'};
       $button=1;        $button=1;
   }    }
Line 508  sub setgradedata { Line 517  sub setgradedata {
     } elsif ( $award eq 'INCORRECT' ) {      } elsif ( $award eq 'INCORRECT' ) {
       $Apache::lonhomework::results{"resource.$id.tries"} =        $Apache::lonhomework::results{"resource.$id.tries"} =
  $Apache::lonhomework::history{"resource.$id.tries"} + 1;   $Apache::lonhomework::history{"resource.$id.tries"} + 1;
         if (lc($Apache::lonhomework::problemstatus) eq 'no') {
     $Apache::lonhomework::results{"resource.$id.awarded"} = 0;
         }
       $Apache::lonhomework::results{"resource.$id.solved"} =        $Apache::lonhomework::results{"resource.$id.solved"} =
  'incorrect_attempted'   'incorrect_attempted'
     } elsif ( $award eq 'SUBMITTED' ) {      } elsif ( $award eq 'SUBMITTED' ) {
Line 527  sub setgradedata { Line 539  sub setgradedata {
       if (lc($Apache::lonhomework::problemstatus) eq 'no') {        if (lc($Apache::lonhomework::problemstatus) eq 'no') {
   $Apache::lonhomework::results{"resource.$id.tries"} =    $Apache::lonhomework::results{"resource.$id.tries"} =
       $Apache::lonhomework::history{"resource.$id.tries"} + 1;        $Apache::lonhomework::history{"resource.$id.tries"} + 1;
     $Apache::lonhomework::results{"resource.$id.awarded"} = 0;
       }        }
     }      }
   
Line 607  sub gradestatus { Line 620  sub gradestatus {
   
   my $status = $Apache::inputtags::status['-1'];    my $status = $Apache::inputtags::status['-1'];
   &Apache::lonxml::debug("gradestatus has :$status:");    &Apache::lonxml::debug("gradestatus has :$status:");
   if ( $status ne 'CLOSED' && $status ne 'UNAVAILABLE') {      if ( $status ne 'CLOSED' && $status ne 'UNAVAILABLE' &&
          $status ne 'INVALID_ACCESS') {  
     my $award = $Apache::lonhomework::history{"resource.$id.award"};      my $award = $Apache::lonhomework::history{"resource.$id.award"};
     my $solved = $Apache::lonhomework::history{"resource.$id.solved"};      my $solved = $Apache::lonhomework::history{"resource.$id.solved"};
     my $previous = $Apache::lonhomework::history{"resource.$id.previous"};      my $previous = $Apache::lonhomework::history{"resource.$id.previous"};
     &Apache::lonxml::debug("Found Award |$award|$solved|");      &Apache::lonxml::debug("Found Award |$award|$solved|");
     if ( $award ne '' ) {      if ( $award ne '' || $solved ne '') {
       &Apache::lonxml::debug('Getting message');        &Apache::lonxml::debug('Getting message');
       ($showbutton,$bgcolor,$message,$previousmsg) =        ($showbutton,$bgcolor,$message,$previousmsg) =
  &decideoutput($award,$solved,$previous,$target);   &decideoutput($award,$solved,$previous,$target);
Line 628  sub gradestatus { Line 642  sub gradestatus {
     my $tries = $Apache::lonhomework::history{"resource.$id.tries"};      my $tries = $Apache::lonhomework::history{"resource.$id.tries"};
     my $maxtries = &Apache::lonnet::EXT("resource.$id.maxtries");      my $maxtries = &Apache::lonnet::EXT("resource.$id.maxtries");
     &Apache::lonxml::debug("got maxtries of :$maxtries:");      &Apache::lonxml::debug("got maxtries of :$maxtries:");
       #if tries are set to negative turn off the Tries/Button and messages
       if (defined($maxtries) && $maxtries < 0) { return ''; }
     if ( $tries eq '' ) { $tries = '0'; }      if ( $tries eq '' ) { $tries = '0'; }
     if ( $maxtries eq '' ) { $maxtries = '2'; }       if ( $maxtries eq '' ) { $maxtries = '2'; } 
     if ( $maxtries eq 'con_lost' ) { $maxtries = '0'; }       if ( $maxtries eq 'con_lost' ) { $maxtries = '0'; } 
     if ( $showbutton ) {      if ( $showbutton ) {
       if ($target eq 'tex') {        if ($target eq 'tex') {
   if ($ENV{'request.state'} ne "construct" && $Apache::lonhomework::type ne 'exam') {    if ($ENV{'request.state'} ne "construct" && $Apache::lonhomework::type ne 'exam') {
       $trystr = ' {\vskip 1 mm \small \textit{Tries} '.$tries.'/'.$maxtries.'} \vskip 2 mm ';        $trystr = ' {\vskip 1 mm \small \textit{'.&mt('Tries').'} '.$tries.'/'.$maxtries.'} \vskip 2 mm ';
   } else {    } else {
       $trystr = '\vskip 0 mm ';        $trystr = '\vskip 0 mm ';
   }    }
       } else {        } else {
          $trystr = "<td>Tries $tries/$maxtries</td>";           $trystr = "<td>".&mt('Tries')." $tries/$maxtries</td>";
       }        }
     }      }
     if ( $status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER') {$showbutton = 0;}      if ( $status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER') {$showbutton = 0;}
     if ( $showbutton ) {       if ( $showbutton ) { 
       if ($target ne 'tex') {        if ($target ne 'tex') {
         $button = '<br /><input type="submit" name="submit" value="Submit Answer" />';          $button = '<br /><input type="submit" name="submit" value="'.&mt('Submit Answer').'" />';
       }        }
     }      }
     if ($Apache::lonhomework::history{"resource.$id.afterduedate"}) {      if ($Apache::lonhomework::history{"resource.$id.afterduedate"}) {

Removed from v.1.109  
changed lines
  Added in v.1.123


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