--- loncom/interface/lonnavmaps.pm 2010/12/30 21:32:17 1.444.2.3 +++ loncom/interface/lonnavmaps.pm 2012/07/09 18:30:46 1.444.2.4.2.1 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.444.2.3 2010/12/30 21:32:17 raeburn Exp $ +# $Id: lonnavmaps.pm,v 1.444.2.4.2.1 2012/07/09 18:30:46 raeburn Exp $ # # Copyright Michigan State University Board of Trustees @@ -3494,6 +3494,8 @@ sub new { $self->{NAV_MAP}->{RESOURCE_CACHE}->{$self->{ID}} = $self; $self->{RESOURCE_ERROR} = 0; + $self->{DUEDATE_CACHE} = undef; + # A hash that can be used by two-pass algorithms to store data # about this resource in. Not used by the resource object # directly. @@ -4071,6 +4073,9 @@ sub checkedin { # this should work exactly like the copy in lonhomework.pm sub duedate { (my $self, my $part) = @_; + if (defined ($self->{DUEDATE_CACHE}->{$part})) { + return $self->{DUEDATE_CACHE}->{$part}; + } my $date; my @interval=$self->parmval("interval", $part); my $due_date=$self->parmval("duedate", $part); @@ -4087,6 +4092,7 @@ sub duedate { } else { $date = $due_date; } + $self->{DUEDATE_CACHE}->{$part} = $date; return $date; } sub handgrade { @@ -5002,7 +5008,7 @@ sub check_for_slot { my $taskstatus = $self->taskstatus(); $is_correct = (($taskstatus eq 'pass') || ($self->solved() =~ /^correct_/)); - $got_grade = ($self->solved() =~ /^(?:pass|fail)$/); + $got_grade = ($taskstatus =~ /^(?:pass|fail)$/); } else { $got_grade = 1; $is_correct = ($self->solved() =~ /^correct_/);