--- loncom/homework/response.pm 2008/09/04 20:31:55 1.197 +++ loncom/homework/response.pm 2008/12/23 18:09:36 1.210 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # various response type definitons response definition # -# $Id: response.pm,v 1.197 2008/09/04 20:31:55 riegler Exp $ +# $Id: response.pm,v 1.210 2008/12/23 18:09:36 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -26,6 +26,29 @@ # 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; use strict; use Apache::lonlocal; @@ -216,35 +239,26 @@ sub meta_stores_write { ">\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 { -# -# Autogenerate metadata for mandatory -# input (from RAT or lonparmset) and -# output (to lonspreadsheet) -# 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 -# + return &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'); } sub meta_part_order { @@ -288,6 +302,7 @@ sub check_for_previous { $previous{'last'}='1'; } 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'}:"); } } @@ -486,9 +501,6 @@ sub start_mathresponse { $safeeval); $Apache::inputtags::answertxt{$id}=[$answer]; } - if ($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') { - $result.=&edit_mathresponse_button($id,"HWVAL_$id"); - } } elsif ($target eq 'edit') { $result.=&Apache::edit::tag_start($target,$token); @@ -523,7 +535,7 @@ sub start_mathresponse { sub edit_mathresponse_button { my ($id,$field)=@_; 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'}; return(< @@ -533,8 +545,7 @@ function edit_${id}_${field} (textarea) newwin = window.open("/adm/dragmath/applet/MaximaPopup.html","","width=565,height=400,resizable"); } - -$helplink +$button ENDFORMULABUTTON } @@ -576,6 +587,12 @@ sub end_mathresponse { } if ($target eq 'web') { &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); @@ -678,7 +695,7 @@ sub start_responseparam { } } if (defined($optionlist)) { - $result.='Use template:
'; } @@ -885,7 +902,7 @@ sub showallfoils { =pod -=item &getresponse($offset,$resulttype); +=item &getresponse(); Retreives the current submitted response, helps out in the case of scantron mode. @@ -989,7 +1006,7 @@ sub repetition { =pod -=item &scored_response($part_id,$response_id); +=item &scored_response(); Sets the results hash elements @@ -1146,17 +1163,20 @@ sub pick_foil_for_concept { $Apache::response::conceptgroup{'names'}; } -#------------------------------------------------------------ -# -# Get a parameter associated with a problem. -# Parameters: -# $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. -# -# -# + +=pod + +=item get_response_param() + +Get a parameter associated with a problem. +Parameters: + $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 { my ($id,$name,$default)=@_; my $parameter; @@ -1190,7 +1210,7 @@ sub submitted { } # Submit All button on a .page was pressed if (defined($env{'form.all_submit'})) { return 1; } - # otherwise no submission occured + # otherwise no submission occurred return 0; } @@ -1217,14 +1237,21 @@ sub add_to_gradingqueue { } } -# basically undef and 0 (both false) mean that they still have work to do -# and all true values mean that they can't do any more work -# -# 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 +=pod + +=item check_status() + +basically undef and 0 (both false) mean that they still have work to do +and all true values mean that they can't do any more work + + 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 { my ($id)=@_; if (!defined($id)) { $id=$Apache::inputtags::part; } @@ -1249,7 +1276,7 @@ sub check_status { =pod -=item setup_prior_tries_hash($func,$data) +=item setup_prior_tries_hash() Foreach each past .submission $func is called with 3 arguments - the mode to set things up for (currently always 'grade') @@ -1292,3 +1319,6 @@ sub setup_prior_tries_hash { 1; __END__ +=pod + +=cut