version 1.244.2.3, 2021/01/12 15:57:18
|
version 1.250, 2024/10/29 03:22:10
|
Line 265 sub mandatory_part_meta {
|
Line 265 sub mandatory_part_meta {
|
} |
} |
|
|
sub meta_part_order { |
sub meta_part_order { |
|
my ($type) = @_; |
if (@Apache::inputtags::partlist) { |
if (@Apache::inputtags::partlist) { |
my @parts=@Apache::inputtags::partlist; |
my @parts=@Apache::inputtags::partlist; |
shift(@parts); |
unless ($type eq 'library') { |
|
shift(@parts); |
|
} |
return '<partorder>'.join(',',@parts).'</partorder>'."\n"; |
return '<partorder>'.join(',',@parts).'</partorder>'."\n"; |
|
} elsif ($type eq 'library') { |
|
return '<partorder></partorder>'."\n"; |
} else { |
} else { |
return '<partorder>0</partorder>'."\n"; |
return '<partorder>0</partorder>'."\n"; |
} |
} |
Line 766 sub start_responseparam {
|
Line 771 sub start_responseparam {
|
} |
} |
} elsif ($target eq 'grade' || $target eq 'answer' || $target eq 'web' || |
} elsif ($target eq 'grade' || $target eq 'answer' || $target eq 'web' || |
$target eq 'tex' || $target eq 'analyze' ) { |
$target eq 'tex' || $target eq 'analyze' ) { |
if ($env{'request.state'} eq 'construct') { |
if (($env{'request.state'} eq 'construct') || |
|
($env{'request.noversionuri'} =~ m{^\Q/res/adm/includes/templates/\E[^/]+\.problem$})) { |
my $name =&Apache::lonxml::get_param('name',$parstack,$safeeval); |
my $name =&Apache::lonxml::get_param('name',$parstack,$safeeval); |
my $default=&Apache::lonxml::get_param('default',$parstack, |
my $default=&Apache::lonxml::get_param('default',$parstack, |
$safeeval); |
$safeeval); |
Line 797 sub reset_params {
|
Line 803 sub reset_params {
|
sub setup_params { |
sub setup_params { |
my ($tag,$safeeval) = @_; |
my ($tag,$safeeval) = @_; |
|
|
if ($env{'request.state'} eq 'construct') { return; } |
if (($env{'request.state'} eq 'construct') || |
|
($env{'request.noversionuri'} =~ m{^\Q/res/adm/includes/templates/\E[^/]+\.problem$})) { |
|
return; |
|
} |
my %paramlist=(); |
my %paramlist=(); |
foreach my $key (keys(%Apache::lonnet::packagetab)) { |
foreach my $key (keys(%Apache::lonnet::packagetab)) { |
if ($key =~ /^\Q$tag\E/) { |
if ($key =~ /^\Q$tag\E/) { |
Line 876 sub answer_part {
|
Line 885 sub answer_part {
|
if ($env{'form.answer_output_mode'} eq 'tex') { |
if ($env{'form.answer_output_mode'} eq 'tex') { |
if (!$args->{'no_verbatim'}) { |
if (!$args->{'no_verbatim'}) { |
my $to_use='|'; |
my $to_use='|'; |
foreach my $value (32..126) { |
foreach my $value (33..41,43..126) { |
my $char=pack('c',$value); |
my $char=pack('c',$value); |
if ($answer !~ /\Q$char\E/) { |
if ($answer !~ /\Q$char\E/) { |
$to_use=$char; |
$to_use=$char; |
Line 1344 and all true values mean that they can't
|
Line 1353 and all true values mean that they can't
|
|
|
a return of undef means it is unattempted |
a return of undef means it is unattempted |
a return of 0 means it is both attempted and still has tries and |
a return of 0 means it is both attempted and still has tries and |
is wrong or is only partially correct, and retries |
is wrong or is only partially correct, and retries |
are allowed. |
are allowed. |
a return of 1 means it is marked correct |
a return of 1 means it is marked correct |
a return of 2 means they have exceeded maximum number of tries |
a return of 2 means they have exceeded maximum number of tries |
Line 1365 sub check_status {
|
Line 1374 sub check_status {
|
return 3; |
return 3; |
} |
} |
my $status=&Apache::lonnet::EXT("user.resource.resource.$id.solved"); |
my $status=&Apache::lonnet::EXT("user.resource.resource.$id.solved"); |
if ($status =~ /^correct/) { |
if ($status =~ /^correct/) { |
my $awarded=&Apache::lonnet::EXT("user.resource.resource.$id.awarded"); |
my $awarded=&Apache::lonnet::EXT("user.resource.resource.$id.awarded"); |
my $retrypartial=&Apache::lonnet::EXT("resource.$id.retrypartial"); |
my $retrypartial=&Apache::lonnet::EXT("resource.$id.retrypartial"); |
unless (($retrypartial =~ /^1|on|yes$/) && ($awarded <1)) { |
unless (($retrypartial =~ /^1|on|yes$/) && ($awarded <1)) { |