version 1.248.2.1, 2008/12/10 22:47:31
|
version 1.249, 2008/11/25 13:16:17
|
Line 25
|
Line 25
|
# |
# |
# http://www.lon-capa.org/ |
# http://www.lon-capa.org/ |
|
|
|
=pod |
|
|
|
=head1 NAME |
|
|
|
Apache::inputtags |
|
|
|
=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::inputtags; |
package Apache::inputtags; |
use HTML::Entities(); |
use HTML::Entities(); |
use strict; |
use strict; |
Line 38 BEGIN {
|
Line 62 BEGIN {
|
&Apache::lonxml::register('Apache::inputtags',('hiddenline','textfield','textline')); |
&Apache::lonxml::register('Apache::inputtags',('hiddenline','textfield','textline')); |
} |
} |
|
|
# Initializes a set of global variables used during the parse of the problem. |
=pod |
# |
|
# @Apache::inputtags::input - List of current input ids. |
=item initialize_inputtags() |
# @Apache::inputtags::inputlist - List of all input ids seen this problem. |
|
# @Apache::inputtags::response - List of all current resopnse ids. |
Initializes a set of global variables used during the parse of the problem. |
# @Apache::inputtags::responselist - List of all response ids seen this |
|
# problem. |
@Apache::inputtags::input - List of current input ids. |
# @Apache::inputtags::hint - List of all hint ids. |
@Apache::inputtags::inputlist - List of all input ids seen this problem. |
# @Apache::inputtags::hintlist - List of all hint ids seen this problem. |
@Apache::inputtags::response - List of all current resopnse ids. |
# @Apache::inputtags::previous - List describing if specific responseds |
@Apache::inputtags::responselist - List of all response ids seen this |
# have been used |
problem. |
# @Apache::inputtags::previous_version - Submission responses were used in. |
@Apache::inputtags::hint - List of all hint ids. |
# $Apache::inputtags::part - Current part id (valid only in |
@Apache::inputtags::hintlist - List of all hint ids seen this problem. |
# <problem>) |
@Apache::inputtags::previous - List describing if specific responseds |
# 0 if not in a part. |
have been used |
# @Apache::inputtags::partlist - List of part ids seen in the current |
@Apache::inputtags::previous_version - Submission responses were used in. |
# <problem> |
$Apache::inputtags::part - Current part id (valid only in |
# @Apache::inputtags::status - List of problem statuses. First |
<problem>) |
# element is the status of the <problem> |
0 if not in a part. |
# the remainder are for individual <part>s. |
@Apache::inputtags::partlist - List of part ids seen in the current |
# %Apache::inputtags::params - Hash of defined parameters for the |
<problem> |
# current response. |
@Apache::inputtags::status - List of problem statuses. First |
# @Apache::inputtags::import - List of all ids for <import> thes get |
element is the status of the <problem> |
# join()ed and prepended. |
the remainder are for individual <part>s. |
# @Apache::inputtags::importlist - List of all import ids seen. |
%Apache::inputtags::params - Hash of defined parameters for the |
# $Apache::inputtags::response_with_no_part |
current response. |
# - Flag set true if we have seen a response |
@Apache::inputtags::import - List of all ids for <import> thes get |
# that is not inside a <part> |
join()ed and prepended. |
# %Apache::inputtags::answertxt - <*response> tags store correct |
@Apache::inputtags::importlist - List of all import ids seen. |
# answer strings for display by <textline/> |
$Apache::inputtags::response_with_no_part |
# in this hash. |
- Flag set true if we have seen a response |
# %Apache::inputtags::submission_display |
that is not inside a <part> |
# - <*response> tags store improved display |
%Apache::inputtags::answertxt - <*response> tags store correct |
# of submission strings for display by part |
answer strings for display by <textline/> |
# end. |
in this hash. |
|
%Apache::inputtags::submission_display |
|
- <*response> tags store improved display |
|
of submission strings for display by part |
|
end. |
|
|
|
=cut |
|
|
sub initialize_inputtags { |
sub initialize_inputtags { |
@Apache::inputtags::input=(); |
@Apache::inputtags::input=(); |
Line 424 sub end_hiddenline {
|
Line 454 sub end_hiddenline {
|
return ""; |
return ""; |
} |
} |
|
|
# $part -> partid |
=pod |
# $id -> responseid |
|
# $uploadefiletypes -> comma seperated list of extensions allowed or * for any |
=item file_selector() |
# $which -> 'uploadedonly' -> only newly uploaded files |
|
# 'portfolioonly' -> only allow files from portfolio |
$part -> partid |
# 'both' -> allow files from either location |
$id -> responseid |
# $extratext -> additional text to go between the link and the input box |
$uploadefiletypes -> comma seperated list of extensions allowed or * for any |
# returns a table row <tr> |
$which -> 'uploadedonly' -> only newly uploaded files |
|
'portfolioonly' -> only allow files from portfolio |
|
'both' -> allow files from either location |
|
$extratext -> additional text to go between the link and the input box |
|
returns a table row <tr> |
|
|
|
=cut |
|
|
sub file_selector { |
sub file_selector { |
my ($part,$id,$uploadedfiletypes,$which,$extratext)=@_; |
my ($part,$id,$uploadedfiletypes,$which,$extratext)=@_; |
if (!$uploadedfiletypes) { return ''; } |
if (!$uploadedfiletypes) { return ''; } |
Line 523 sub valid_award {
|
Line 560 sub valid_award {
|
'UNIT_INVALID_STUDENT', 'UNIT_IRRECONCIBLE', |
'UNIT_INVALID_STUDENT', 'UNIT_IRRECONCIBLE', |
'UNIT_FAIL', 'NO_UNIT', |
'UNIT_FAIL', 'NO_UNIT', |
'UNIT_NOTNEEDED', 'WANTED_NUMERIC', |
'UNIT_NOTNEEDED', 'WANTED_NUMERIC', |
'BAD_FORMULA', 'INTERNAL_ERROR', 'SIG_FAIL', 'INCORRECT', |
'BAD_FORMULA', 'SIG_FAIL', 'INCORRECT', |
'MISORDERED_RANK', 'INVALID_FILETYPE', |
'MISORDERED_RANK', 'INVALID_FILETYPE', |
'EXCESS_FILESIZE', 'DRAFT', |
'EXCESS_FILESIZE', 'DRAFT', |
'SUBMITTED', 'ASSIGNED_SCORE', |
'SUBMITTED', 'ASSIGNED_SCORE', |
Line 538 sub valid_award {
|
Line 575 sub valid_award {
|
'TOO_LONG', |
'TOO_LONG', |
'UNIT_INVALID_INSTRUCTOR', 'UNIT_INVALID_STUDENT', |
'UNIT_INVALID_INSTRUCTOR', 'UNIT_INVALID_STUDENT', |
'UNIT_IRRECONCIBLE', 'UNIT_FAIL', 'NO_UNIT', |
'UNIT_IRRECONCIBLE', 'UNIT_FAIL', 'NO_UNIT', |
'UNIT_NOTNEEDED', 'WANTED_NUMERIC', 'BAD_FORMULA', 'INTERNAL_ERROR', |
'UNIT_NOTNEEDED', 'WANTED_NUMERIC', 'BAD_FORMULA', |
'COMMA_FAIL', 'SIG_FAIL', 'INCORRECT', 'MISORDERED_RANK', |
'COMMA_FAIL', 'SIG_FAIL', 'INCORRECT', 'MISORDERED_RANK', |
'INVALID_FILETYPE', 'EXCESS_FILESIZE', 'DRAFT', 'SUBMITTED', |
'INVALID_FILETYPE', 'EXCESS_FILESIZE', 'DRAFT', 'SUBMITTED', |
'ASSIGNED_SCORE', 'APPROX_ANS', 'EXACT_ANS'); |
'ASSIGNED_SCORE', 'APPROX_ANS', 'EXACT_ANS'); |
Line 586 sub finalizeawards {
|
Line 623 sub finalizeawards {
|
return ('NO_RESPONSE'); |
return ('NO_RESPONSE'); |
} |
} |
} |
} |
|
|
if ($Apache::lonxml::internal_error) { $result='INTERNAL_ERROR'; } |
|
|
|
if (!$final_scantron && defined($result)) { return ($result); } |
if (!$final_scantron && defined($result)) { return ($result); } |
|
|
# if in scantron mode, if the award for any response is |
# if in scantron mode, if the award for any response is |
Line 813 sub decideoutput {
|
Line 847 sub decideoutput {
|
if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Formula_Answers')}; |
if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Formula_Answers')}; |
$css_class=$possible_class{'not_charged_try'}; |
$css_class=$possible_class{'not_charged_try'}; |
$button=1; |
$button=1; |
} elsif ($award eq 'INTERNAL_ERROR') { |
|
$message = &mt("An internal error occurred while processing your answer. Please try again later."); |
|
$css_class=$possible_class{'not_charged_try'}; |
|
$button=1; |
|
} elsif ($award eq 'INCORRECT') { |
} elsif ($award eq 'INCORRECT') { |
$message = &mt("Incorrect").'.'; |
$message = &mt("Incorrect").'.'; |
$css_class=$possible_class{'charged_try'}; |
$css_class=$possible_class{'charged_try'}; |
Line 1353 sub previous_tries {
|
Line 1383 sub previous_tries {
|
|
|
1; |
1; |
__END__ |
__END__ |
|
|
|
=pod |
|
|
|
=back |
|
|
|
=cut |
|
|