Diff for /loncom/homework/structuretags.pm between versions 1.237 and 1.242

version 1.237, 2004/02/16 18:40:18 version 1.242, 2004/02/16 20:30:34
Line 242  Problem Status: Line 242  Problem Status:
 Problem Type:  Problem Type:
 <select name='problemtype'>  <select name='problemtype'>
   <option name=''></option>    <option name=''></option>
   ".&option('exam'   ,'problemtype')."Exam Problem</option>    ".&option('exam'   ,'problemtype').&mt("Exam Problem")."</option>
   ".&option('problem','problemtype')."Homework problem</option>    ".&option('problem','problemtype').&mt("Homework problem")."</option>
   ".&option('survey' ,'problemtype')."Survey Question</option>    ".&option('survey' ,'problemtype').&mt("Survey Question")."</option>
 </select>  </select>
 </nobr>  </nobr>
 <nobr>  <nobr>
 Feedback Mode:  Feedback Mode:
 <select name='problemstatus'>  <select name='problemstatus'>
   <option value=''></option>    <option value=''></option>
   ".&option('yes','problemstatus')."Show Feedback</option>    ".&option('yes','problemstatus').&mt("Show Feedback")."</option>
   ".&option('no', 'problemstatus')."Don\'t Show Feedback</option>    ".&option('no', 'problemstatus').&mt("Don't Show Feedback")."</option>
 </select>  </select>
 <input type='submit' name='changeproblemmode' value='Change' />  
 </nobr>  </nobr>
   <input type='submit' name='changeproblemmode' value='".&mt("Change")."' />
 <hr />";  <hr />";
     my $numtoanalyze=$ENV{'form.numtoanalyze'};      my $numtoanalyze=$ENV{'form.numtoanalyze'};
     if (!$numtoanalyze) { $numtoanalyze=20; }      if (!$numtoanalyze) { $numtoanalyze=20; }
Line 336  sub init_problem_globals { Line 336  sub init_problem_globals {
     if ($type eq 'problem') {      if ($type eq 'problem') {
  $Apache::inputtags::part='0';   $Apache::inputtags::part='0';
  @Apache::inputtags::partlist=('0');   @Apache::inputtags::partlist=('0');
  $Apache::lonhomework::problemstatus=  
     &Apache::lonnet::EXT('resource.0.problemstatus');   $Apache::lonhomework::problemstatus=&get_problem_status('0')
  &Apache::lonxml::debug("problem status is  $Apache::lonhomework::problemstatus");  
  &Apache::lonxml::debug("env probstat is ".$ENV{'form.problemstatus'});  
  if ($ENV{'request.state'} eq 'construct' &&  
     defined($ENV{'form.problemstatus'})) {  
     $Apache::lonhomework::problemstatus=$ENV{'form.problemstatus'};  
  }  
     } else {      } else {
  $Apache::inputtags::part='';   $Apache::inputtags::part='';
  @Apache::inputtags::partlist=();   @Apache::inputtags::partlist=();
Line 373  sub reset_problem_globals { Line 367  sub reset_problem_globals {
     undef($Apache::lonhomework::name);      undef($Apache::lonhomework::name);
 }  }
   
   sub set_problem_state {
       my ($part)=@_;
       if ($ENV{'form.problemstate'} eq 'CANNOT_ANSWER_correct') {
    $Apache::lonhomework::history{"resource.$part.solved"}=
       'correct_by_student';
       }
   }
   
   sub get_problem_status {
       my ($part)=@_;
       my $problem_status=&Apache::lonnet::EXT("resource.$part.problemstatus");
       &Apache::lonxml::debug("problem status for $part is $problem_status");
       &Apache::lonxml::debug("env probstat is ".$ENV{'form.problemstatus'});
       if ($ENV{'request.state'} eq 'construct' &&
    defined($ENV{'form.problemstatus'})) {
    $problem_status=$ENV{'form.problemstatus'};
       }
       return $problem_status;
   }
   
 sub start_problem {  sub start_problem {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
   
Line 395  sub start_problem { Line 409  sub start_problem {
  if ($target eq 'web') {   if ($target eq 'web') {
     &Apache::lonhomework::showhash(%Apache::lonhomework::history);      &Apache::lonhomework::showhash(%Apache::lonhomework::history);
  }   }
           if ($ENV{'request.state'} eq 'construct') { &set_problem_state('0'); }
  $Apache::lonhomework::type=&Apache::lonnet::EXT('resource.0.type');   $Apache::lonhomework::type=&Apache::lonnet::EXT('resource.0.type');
  if (($ENV{'request.state'} eq 'construct') &&   if (($ENV{'request.state'} eq 'construct') &&
     defined($ENV{'form.problemtype'})) {      defined($ENV{'form.problemtype'})) {
     $Apache::lonhomework::type=$ENV{'form.problemtype'};      $Apache::lonhomework::type=$ENV{'form.problemtype'};
  }   }
  &Apache::lonxml::debug("Found this to be of type :$Apache::lonhomework::type:");   &Apache::lonxml::debug("Found this to be of type :$Apache::ltonhomework::type:");
     }      }
     if ($Apache::lonhomework::type eq '' ) {      if ($Apache::lonhomework::type eq '' ) {
  my $uri=$ENV{'request.uri'};   my $uri=$ENV{'request.uri'};
Line 985  sub start_part { Line 1000  sub start_part {
     @Apache::inputtags::response=();      @Apache::inputtags::response=();
     @Apache::inputtags::previous=();      @Apache::inputtags::previous=();
     @Apache::inputtags::previous_version=();      @Apache::inputtags::previous_version=();
     $Apache::lonhomework::problemstatus=      $Apache::lonhomework::problemstatus=&get_problem_status($id);
  &Apache::lonnet::EXT("resource.$id.problemstatus");  
     my $hidden=&Apache::loncommon::check_if_partid_hidden($Apache::inputtags::part);      my $hidden=&Apache::loncommon::check_if_partid_hidden($Apache::inputtags::part);
     my $expression='$external::part=\''.$Apache::inputtags::part.'\';';      my $expression='$external::part=\''.$Apache::inputtags::part.'\';';
     &Apache::run::run($expression,$safeeval);      &Apache::run::run($expression,$safeeval);
Line 1005  sub start_part { Line 1019  sub start_part {
     my $expression='$external::datestatus="'.$status.'";';      my $expression='$external::datestatus="'.$status.'";';
     $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.$id.solved"}.'";';      $expression.='$external::gradestatus="'.$Apache::lonhomework::history{"resource.$id.solved"}.'";';
     &Apache::run::run($expression,$safeeval);      &Apache::run::run($expression,$safeeval);
       if ($ENV{'request.state'} eq 'construct') {
    &set_problem_state($Apache::inputtags::part); 
       }
     if (( $status eq 'CLOSED' ) ||      if (( $status eq 'CLOSED' ) ||
  ( $status eq 'UNCHECKEDOUT') ||   ( $status eq 'UNCHECKEDOUT') ||
  ( $status eq 'BANNED') ||   ( $status eq 'BANNED') ||
Line 1126  sub start_notsolved { Line 1143  sub start_notsolved {
  $target eq 'tex') {   $target eq 'tex') {
  my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"};   my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"};
  &Apache::lonxml::debug("not solved has :$gradestatus:");   &Apache::lonxml::debug("not solved has :$gradestatus:");
  if ($gradestatus =~ /^correct/) {   if ($gradestatus =~ /^correct/ &&
       &Apache::response::show_answer()) {
     &Apache::lonxml::debug("skipping");      &Apache::lonxml::debug("skipping");
     &Apache::lonxml::get_all_text("/notsolved",$parser);      &Apache::lonxml::get_all_text("/notsolved",$parser);
  }   }
Line 1143  sub start_solved { Line 1161  sub start_solved {
     if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||      if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
  $target eq 'tex') {   $target eq 'tex') {
  my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"};   my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"};
  if ($gradestatus !~ /^correct/) {   if ($gradestatus !~ /^correct/ ||
       !&Apache::response::show_answer()) {
     &Apache::lonxml::get_all_text("/solved",$parser);      &Apache::lonxml::get_all_text("/solved",$parser);
  }   }
     }      }

Removed from v.1.237  
changed lines
  Added in v.1.242


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