Diff for /loncom/homework/lonhomework.pm between versions 1.275 and 1.279

version 1.275, 2007/10/05 18:08:40 version 1.279, 2007/10/30 00:24:40
Line 63  BEGIN { Line 63  BEGIN {
 }  }
   
   
   =pod
   
   =item set_bubble_lines()
   
   Called at analysis time to set the bubble lines
   hash for the problem.. This should be called in the
   end_problemtype tag in analysis mode.
   
   We fetch the hash of part id counters from lonxml
       and push them into analyze:{part_id.bubble_lines}.
   
   =cut
   
   sub set_bubble_lines {
       my %bubble_counters = &Apache::lonxml::get_bubble_line_hash();
   
       foreach my $key (keys(%bubble_counters)) {
    $Apache::lonhomework::analyze{"$key.bubble_lines"} =
       $bubble_counters{"$key"};
       }
   }
   
 #  #
 # Decides what targets to render for.  # Decides what targets to render for.
 # Implicit inputs:  # Implicit inputs:
Line 376  sub check_access { Line 398  sub check_access {
     if ($env{'request.state'} eq "construct") {      if ($env{'request.state'} eq "construct") {
  if ($env{'form.problemstate'}) {   if ($env{'form.problemstate'}) {
     if ($env{'form.problemstate'} =~ /^CANNOT_ANSWER/) {      if ($env{'form.problemstate'} =~ /^CANNOT_ANSWER/) {
  if ( ! ($env{'form.problemstate'} eq 'CANNOT_ANSWER_correct' &&   if ( ! ($env{'form.problemstate'} eq 'CANNOT_ANSWER_correct' 
  lc($Apache::lonhomework::problemstatus) eq 'no')) {   && &hide_problem_status())) {
     return ('CANNOT_ANSWER',      return ('CANNOT_ANSWER',
     &mt('is in this state due to author settings.'));      &mt('is in this state due to author settings.'));
  }   }
Line 467  sub check_access { Line 489  sub check_access {
  # if (correct and show prob status) or excused then CANNOT_ANSWER   # if (correct and show prob status) or excused then CANNOT_ANSWER
  if(($Apache::lonhomework::history{"resource.$id.solved"}=~/^correct/   if(($Apache::lonhomework::history{"resource.$id.solved"}=~/^correct/
     &&      &&
     lc($Apache::lonhomework::problemstatus) ne 'no')      &show_problem_status())
    ||     ||
    $Apache::lonhomework::history{"resource.$id.solved"}=~/^excused/) {     $Apache::lonhomework::history{"resource.$id.solved"}=~/^excused/) {
     $status = 'CANNOT_ANSWER';      $status = 'CANNOT_ANSWER';
Line 724  sub analyze_header { Line 746  sub analyze_header {
             <form name="lonhomework" method="POST" action="'.              <form name="lonhomework" method="POST" action="'.
     &HTML::Entities::encode($env{'request.uri'},'<>&"').'">'.      &HTML::Entities::encode($env{'request.uri'},'<>&"').'">'.
     &Apache::structuretags::remember_problem_state().'      &Apache::structuretags::remember_problem_state().'
               <div class="LC_edit_problem_analyze_header">
             <input type="submit" name="problemmode" value="'.&mt("EditXML").'" />              <input type="submit" name="problemmode" value="'.&mt("EditXML").'" />
             <input type="submit" name="problemmode" value="'.&mt('Edit').'" />              <input type="submit" name="problemmode" value="'.&mt('Edit').'" />
             <hr />              <hr class="LC_edit_problem_divide" />
   
             <input type="submit" name="submit" value="'.&mt("View").'" />              <input type="submit" name="submit" value="'.&mt("View").'" />
             <hr />              <hr class="LC_edit_problem_divide" />
               </div>
             </form>';              </form>';
     &Apache::lonxml::add_messages(\$result);      &Apache::lonxml::add_messages(\$result);
     $request->print($result);      $request->print($result);
Line 801  sub analyze { Line 826  sub analyze {
     }      }
     &Apache::lonhtmlcommon::Update_PrgWin($request,\%prog_state,      &Apache::lonhtmlcommon::Update_PrgWin($request,\%prog_state,
   &mt('Analyzing Results'));    &mt('Analyzing Results'));
     $request->print('<hr />'.&mt('List of possible answers').': ');      $request->print('<hr class="LC_edit_problem_divide" />'.&mt('List of possible answers').': ');
     foreach my $part (sort(keys(%allparts))) {      foreach my $part (sort(keys(%allparts))) {
  if (defined(@{ $overall{$part.'.answer'} })) {   if (defined(@{ $overall{$part.'.answer'} })) {
     for (my $i=0;$i<scalar(@{ $overall{$part.'.answer'} });$i++) {      for (my $i=0;$i<scalar(@{ $overall{$part.'.answer'} });$i++) {
Line 839  sub analyze { Line 864  sub analyze {
     return $result;      return $result;
 }  }
   
   {
       my $show_problem_status;
       sub reset_show_problem_status {
    undef($show_problem_status);
       }
   
       sub set_show_problem_status {
    my ($new_status) = @_;
    $show_problem_status = lc($new_status);
       }
   
       sub hide_problem_status {
    return ($show_problem_status eq 'no'
    || $show_problem_status eq 'no_feedback_ever');
       }
   
       sub show_problem_status {
    return ($show_problem_status eq 'yes'
    || $show_problem_status eq '');
       }
       
       sub show_some_problem_status {
    return ($show_problem_status eq 'no');
       }
   
       sub show_no_problem_status {
    return ($show_problem_status eq 'no_feedback_ever');
       }
   }
   
 sub editxmlmode {  sub editxmlmode {
     my ($request,$file) = @_;      my ($request,$file) = @_;
     my $result;      my $result;
Line 888  sub editxmlmode { Line 943  sub editxmlmode {
             <form '.&Apache::edit::form_change_detection().' name="lonhomework" method="POST" action="'.              <form '.&Apache::edit::form_change_detection().' name="lonhomework" method="POST" action="'.
     &HTML::Entities::encode($env{'request.uri'},'<>&"').'">'.      &HTML::Entities::encode($env{'request.uri'},'<>&"').'">'.
     &Apache::structuretags::remember_problem_state().'      &Apache::structuretags::remember_problem_state().'
               <div class="LC_edit_problem_editxml_header">
             <input type="hidden" name="problemmode" value="'.&mt('EditXML').'" />              <input type="hidden" name="problemmode" value="'.&mt('EditXML').'" />
             <input type="submit" name="problemmode" accesskey="d" value="'.&mt('Discard Edits and View').'" />              <input type="submit" name="problemmode" accesskey="d" value="'.&mt('Discard Edits and View').'" />
             <input type="submit" '.&Apache::edit::submit_ask_anyway().'name="problemmode" accesskey="e" value="'.&mt('Edit').'" />              <input type="submit" '.&Apache::edit::submit_ask_anyway().'name="problemmode" accesskey="e" value="'.&mt('Edit').'" />
             <input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" />              <input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" />
             <hr />              <hr class="LC_edit_problem_divide" />
             <input type="submit" name="submit" accesskey="s" value="'.&mt('Submit Changes').'" />              <input type="submit" name="submit" accesskey="s" value="'.&mt('Submit Changes').'" />
             <input type="submit" name="submit" accesskey="v" value="'.&mt('Submit Changes and View').'" />              <input type="submit" name="submit" accesskey="v" value="'.&mt('Submit Changes and View').'" />
             <hr />              <hr class="LC_edit_problem_divide" />
               </div>
             ' . $xml_help . '              ' . $xml_help . '
             <textarea '.&Apache::edit::element_change_detection().              <textarea '.&Apache::edit::element_change_detection().
               ' rows="'.$rows.'" cols="'.$cols.'" style="width:100%" '.                ' rows="'.$rows.'" cols="'.$cols.'" style="width:100%" '.
       ' name="editxmltext" id="LC_editxmltext">'.        ' name="editxmltext" id="LC_editxmltext">'.
       &HTML::Entities::encode($problem,'<>&"').'</textarea>        &HTML::Entities::encode($problem,'<>&"').'</textarea>
             <div id="LC_aftertextarea">              <div id="LC_aftertextarea">
                 <input type="submit" name="submit" accesskey="s" value="'.&mt('Submit Changes').'" />  
                 <input type="submit" name="submit" accesskey="v" value="'.&mt('Submit Changes and View').'" />  
             </div>              </div>
             </form>'.&Apache::loncommon::end_page();              </form>'.&Apache::loncommon::end_page();
  &Apache::lonxml::add_messages(\$result);   &Apache::lonxml::add_messages(\$result);

Removed from v.1.275  
changed lines
  Added in v.1.279


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