Diff for /loncom/homework/response.pm between versions 1.197 and 1.210

version 1.197, 2008/09/04 20:31:55 version 1.210, 2008/12/23 18:09:36
Line 26 Line 26
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
   
   =pod
   
   =head1 NAME
   
   Apache::resonse.pm
   
   =head1 SYNOPSIS
   
   This is part of the LearningOnline Network with CAPA project
   described at http://www.lon-capa.org.
   
   
   =head1 NOTABLE SUBROUTINES
   
   =over
   
   =item 
   
   =back
   
   =cut
   
   
 package Apache::response;  package Apache::response;
 use strict;  use strict;
 use Apache::lonlocal;  use Apache::lonlocal;
Line 216  sub meta_stores_write { Line 239  sub meta_stores_write {
       "></stores>\n";        "></stores>\n";
 }  }
   
   =pod
   
   =item mandatory_part_meta()
   
   Autogenerate metadata for mandatory
   input (from RAT or lonparmset) and
   output (to lonspreadsheet)
   of each part
   
   Note: responseid-specific data 'submission' and 'awarddetail'
   not available to spreadsheet -> skip here
   
   =cut
   
   
 sub mandatory_part_meta {  sub mandatory_part_meta {
 #      return &meta_package_write('part').
 # Autogenerate metadata for mandatory             &meta_stores_write('solved','string','Problem Status').
 # input (from RAT or lonparmset) and              &meta_stores_write('tries','int_zeropos','Number of Attempts').
 # output (to lonspreadsheet)             &meta_stores_write('awarded','float','Partial Credit Factor');
 # of each part  
 #  
     return  
 #    &meta_parameter_write('opendate','date_start','',  
 #                          'Opening Date').  
 #    &meta_parameter_write('duedate','date_end','',  
 #                          'Due Date').  
 #    &meta_parameter_write('answerdate','date_start','',  
 #                          'Show Answer Date').  
 #    &meta_parameter_write('weight','int_zeropos','',  
 #                          'Available Points').  
 #    &meta_parameter_write('maxtries','int_pos','',  
 #                          'Maximum Number of Tries').  
  &meta_package_write('part').  
         &meta_stores_write('solved','string',  
    'Problem Status').  
         &meta_stores_write('tries','int_zeropos',  
    'Number of Attempts').  
         &meta_stores_write('awarded','float',  
    'Partial Credit Factor');  
 #  
 # Note: responseid-specific data 'submission' and 'awarddetail'  
 # not available to spreadsheet -> skip here  
 #  
 }  }
   
 sub meta_part_order {  sub meta_part_order {
Line 288  sub check_for_previous { Line 302  sub check_for_previous {
     $previous{'last'}='1';      $previous{'last'}='1';
  }   }
  if (! $previous{'award'} ) { $previous{'award'} = 'UNKNOWN'; }   if (! $previous{'award'} ) { $previous{'award'} = 'UNKNOWN'; }
                   if ($previous{'award'} eq 'INTERNAL_ERROR') { $previous{'used'}=0; }
  &Apache::lonxml::debug("got a match :$previous{'award'}:$previous{'used'}:");   &Apache::lonxml::debug("got a match :$previous{'award'}:$previous{'used'}:");
     }      }
  }   }
Line 486  sub start_mathresponse { Line 501  sub start_mathresponse {
    $safeeval);     $safeeval);
     $Apache::inputtags::answertxt{$id}=[$answer];      $Apache::inputtags::answertxt{$id}=[$answer];
  }   }
         if ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') {  
             $result.=&edit_mathresponse_button($id,"HWVAL_$id");  
         }  
   
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result.=&Apache::edit::tag_start($target,$token);   $result.=&Apache::edit::tag_start($target,$token);
Line 523  sub start_mathresponse { Line 535  sub start_mathresponse {
 sub edit_mathresponse_button {  sub edit_mathresponse_button {
     my ($id,$field)=@_;      my ($id,$field)=@_;
     my $button=&mt('Edit Answer');      my $button=&mt('Edit Answer');
     my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor');  #    my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor');
     my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'};      my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'};
     return(<<ENDFORMULABUTTON);      return(<<ENDFORMULABUTTON);
 <script language="JavaScript">  <script language="JavaScript">
Line 533  function edit_${id}_${field} (textarea) Line 545  function edit_${id}_${field} (textarea)
     newwin = window.open("/adm/dragmath/applet/MaximaPopup.html","","width=565,height=400,resizable");      newwin = window.open("/adm/dragmath/applet/MaximaPopup.html","","width=565,height=400,resizable");
 }  }
 </script>  </script>
 <a href="javascript:edit_${id}_${field}('${field}');void(0);"><img src='$iconpath/stift.gif' /></a>  <a href="javascript:edit_${id}_${field}('${field}');void(0);"><img class="stift" src='$iconpath/stift.gif' alt='$button' title='$button'/></a>
 <input type='button' value='$button' onclick="javascript:edit_${id}_${field}('${field}');void(0);" />$helplink  
 ENDFORMULABUTTON  ENDFORMULABUTTON
 }  }
   
Line 576  sub end_mathresponse { Line 587  sub end_mathresponse {
     }      }
     if ($target eq 'web') {      if ($target eq 'web') {
  &setup_prior_tries_hash(\&format_prior_response_math);   &setup_prior_tries_hash(\&format_prior_response_math);
           my $partid = $Apache::inputtags::part;
           my $id = $Apache::inputtags::response[-1];
           if (($Apache::inputtags::status['-1'] eq 'CAN_ANSWER')
              && (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) {
               $result.=&edit_mathresponse_button($id,"HWVAL_$id");
           }
     }      }
   
     pop(@Apache::lonxml::namespace);      pop(@Apache::lonxml::namespace);
Line 678  sub start_responseparam { Line 695  sub start_responseparam {
     }      }
  }   }
  if (defined($optionlist)) {   if (defined($optionlist)) {
     $result.='Use template: <select name="'.      $result.=&mt('Use template:').' <select name="'.
  &Apache::edit::html_element_name('parameter_package').'">'.   &Apache::edit::html_element_name('parameter_package').'">'.
     '<option value=""></option>'.$optionlist.'</select><br />';      '<option value=""></option>'.$optionlist.'</select><br />';
  }   }
Line 885  sub showallfoils { Line 902  sub showallfoils {
   
 =pod  =pod
   
 =item &getresponse($offset,$resulttype);  =item &getresponse();
   
 Retreives the current submitted response, helps out in the case of  Retreives the current submitted response, helps out in the case of
 scantron mode.  scantron mode.
Line 989  sub repetition { Line 1006  sub repetition {
   
 =pod  =pod
   
 =item &scored_response($part_id,$response_id);  =item &scored_response();
   
 Sets the results hash elements  Sets the results hash elements
   
Line 1146  sub pick_foil_for_concept { Line 1163  sub pick_foil_for_concept {
  $Apache::response::conceptgroup{'names'};   $Apache::response::conceptgroup{'names'};
   
 }  }
 #------------------------------------------------------------  
 #  =pod
 #  Get a parameter associated with a problem.  
 # Parameters:  =item get_response_param()
 #  $id        - the id of the paramater, either a part id,   
 #               or a partid and responspe id joined by _  Get a parameter associated with a problem.
 #  $name      - Name of the parameter to fetch  Parameters:
 #  $default   - Default value for the paramter.   $id        - the id of the paramater, either a part id, 
 #                or a partid and responspe id joined by _
 #     $name      - Name of the parameter to fetch
 #   $default   - Default value for the paramter.
   
   =cut
   
 sub get_response_param {  sub get_response_param {
     my ($id,$name,$default)=@_;      my ($id,$name,$default)=@_;
     my $parameter;      my $parameter;
Line 1190  sub submitted { Line 1210  sub submitted {
     }      }
     # Submit All button on a .page was pressed      # Submit All button on a .page was pressed
     if (defined($env{'form.all_submit'})) { return 1; }      if (defined($env{'form.all_submit'})) { return 1; }
     # otherwise no submission occured      # otherwise no submission occurred
     return 0;      return 0;
 }  }
   
Line 1217  sub add_to_gradingqueue { Line 1237  sub add_to_gradingqueue {
     }      }
 }  }
   
 # basically undef and 0 (both false) mean that they still have work to do  =pod 
 # and all true values mean that they can't do any more work  
 #  =item check_status()
 # a return of undef means it is unattempted  
 # a return of 0 means it is attmpted and wrong but still has tries  basically undef and 0 (both false) mean that they still have work to do
 # a return of 1 means it is marked correct  and all true values mean that they can't do any more work
 # a return of 2 means they have exceed maximum number of tries  
 # a return of 3 means it after the answer date   a return of undef means it is unattempted
    a return of 0 means it is attmpted and wrong but still has tries
    a return of 1 means it is marked correct
    a return of 2 means they have exceed maximum number of tries
    a return of 3 means it after the answer date
   
   =cut
   
 sub check_status {  sub check_status {
     my ($id)=@_;      my ($id)=@_;
     if (!defined($id)) { $id=$Apache::inputtags::part; }      if (!defined($id)) { $id=$Apache::inputtags::part; }
Line 1249  sub check_status { Line 1276  sub check_status {
   
 =pod  =pod
   
 =item setup_prior_tries_hash($func,$data)  =item setup_prior_tries_hash()
   
   Foreach each past .submission $func is called with 3 arguments    Foreach each past .submission $func is called with 3 arguments
      - the mode to set things up for (currently always 'grade')       - the mode to set things up for (currently always 'grade')
Line 1292  sub setup_prior_tries_hash { Line 1319  sub setup_prior_tries_hash {
 1;  1;
 __END__  __END__
     
   =pod
   
   =cut

Removed from v.1.197  
changed lines
  Added in v.1.210


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