version 1.232, 2003/09/22 00:48:32
|
version 1.237, 2003/10/04 18:13:36
|
Line 127 sub real_handler {
|
Line 127 sub real_handler {
|
# Create the nav map |
# Create the nav map |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
|
|
|
|
if (!defined($navmap)) { |
if (!defined($navmap)) { |
my $requrl = $r->uri; |
my $requrl = $r->uri; |
$ENV{'user.error.msg'} = "$requrl:bre:0:0:Course not initialized"; |
$ENV{'user.error.msg'} = "$requrl:bre:0:0:Course not initialized"; |
Line 433 sub timeToHumanString {
|
Line 432 sub timeToHumanString {
|
return &mt('never'); |
return &mt('never'); |
} |
} |
unless (&Apache::lonlocal::current_language()=~/^en/) { |
unless (&Apache::lonlocal::current_language()=~/^en/) { |
return localtime($time); |
return &Apache::lonlocal::locallocaltime($time); |
} |
} |
my $now = time(); |
my $now = time(); |
|
|
Line 3369 sub opendate {
|
Line 3368 sub opendate {
|
} |
} |
sub problemstatus { |
sub problemstatus { |
(my $self, my $part) = @_; |
(my $self, my $part) = @_; |
return $self->parmval("problemstatus", $part); |
return lc $self->parmval("problemstatus", $part); |
} |
} |
sub sig { |
sub sig { |
(my $self, my $part) = @_; |
(my $self, my $part) = @_; |
Line 3547 sub responseType {
|
Line 3546 sub responseType {
|
my $part = shift; |
my $part = shift; |
|
|
$self->extractParts(); |
$self->extractParts(); |
return $self->{RESPONSE_TYPES}->{$part}; |
if (defined($self->{RESPONSE_TYPES}->{$part})) { |
|
return @{$self->{RESPONSE_TYPES}->{$part}}; |
|
} else { |
|
return undef; |
|
} |
} |
} |
|
|
sub responseIds { |
sub responseIds { |
Line 3555 sub responseIds {
|
Line 3558 sub responseIds {
|
my $part = shift; |
my $part = shift; |
|
|
$self->extractParts(); |
$self->extractParts(); |
return $self->{RESPONSE_IDS}->{$part}; |
if (defined($self->{RESPONSE_IDS}->{$part})) { |
|
return @{$self->{RESPONSE_IDS}->{$part}}; |
|
} else { |
|
return undef; |
|
} |
} |
} |
|
|
# Private function: Extracts the parts information, both part names and |
# Private function: Extracts the parts information, both part names and |
Line 3629 sub extractParts {
|
Line 3636 sub extractParts {
|
my @otherChunks = @partChunks[$i+1..$#partChunks]; |
my @otherChunks = @partChunks[$i+1..$#partChunks]; |
my $responseId = join('_', @otherChunks); |
my $responseId = join('_', @otherChunks); |
push @{$responseIdHash{$partIdSoFar}}, $responseId; |
push @{$responseIdHash{$partIdSoFar}}, $responseId; |
$responseTypeHash{$partIdSoFar} = $responseType; |
push @{$responseTypeHash{$partIdSoFar}}, $responseType; |
last; |
|
} |
} |
} |
} |
} |
} |
Line 3948 sub status {
|
Line 3954 sub status {
|
#if ($self->{RESOURCE_ERROR}) { return NETWORK_FAILURE; } |
#if ($self->{RESOURCE_ERROR}) { return NETWORK_FAILURE; } |
if ($completionStatus == NETWORK_FAILURE) { return NETWORK_FAILURE; } |
if ($completionStatus == NETWORK_FAILURE) { return NETWORK_FAILURE; } |
|
|
my $suppressFeedback = lc($self->parmval("problemstatus", $part)) eq 'no'; |
my $suppressFeedback = $self->problemstatus($part) eq 'no'; |
|
# If there's an answer date and we're past it, don't |
|
# suppress the feedback; student should know |
|
if ($self->answerdate($part) && $self->answerdate($part) < time()) { |
|
$suppressFeedback = 0; |
|
} |
|
|
# There are a few whole rows we can dispose of: |
# There are a few whole rows we can dispose of: |
if ($completionStatus == CORRECT || |
if ($completionStatus == CORRECT || |