--- loncom/interface/lonnavmaps.pm 2002/11/15 17:30:33 1.107 +++ loncom/interface/lonnavmaps.pm 2002/11/15 18:10:22 1.108 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.107 2002/11/15 17:30:33 bowersj2 Exp $ +# $Id: lonnavmaps.pm,v 1.108 2002/11/15 18:10:22 bowersj2 Exp $ # # Copyright Michigan State University Board of Trustees # @@ -2005,10 +2005,7 @@ sub answerdate { } return $self->parmval("answerdate", $part); } -sub awarded { - (my $self, my $part) = @_; - return $self->parmval("awarded", $part); -} +sub awarded { my $self = shift; return $self->queryRestoreHash('awarded', shift); } sub duedate { (my $self, my $part) = @_; return $self->parmval("duedate", $part); @@ -2033,16 +2030,10 @@ sub tol { (my $self, my $part) = @_; return $self->parmval("tol", $part); } -sub tries { - my $self = shift; - my $part = shift; - $part = '0' if (!defined($part)); - - # Make sure return hash is loaded, should error check - $self->getReturnHash(); - - my $tries = $self->{RETURN_HASH}->{'resource.'.$part.'.tries'}; - if (!defined($tries)) {return '0';} +sub tries { + my $self = shift; + my $tries = $self->queryRestoreHash('tries', shift); + if (!defined($tries)) { return '0';} return $tries; } sub type { @@ -2312,14 +2303,9 @@ sub ATTEMPTED { return 16; } sub getCompletionStatus { my $self = shift; - my $part = shift; - $part = "0" if (!defined($part)); return $self->NETWORK_FAILURE if ($self->{NAV_MAP}->{NETWORK_FAILURE}); - # Make sure return hash exists - $self->getReturnHash(); - - my $status = $self->{RETURN_HASH}->{'resource.'.$part.'.solved'}; + my $status = $self->queryRestoreHash('solved', shift); # Left as seperate if statements in case we ever do more with this if ($status eq 'correct_by_student') {return $self->CORRECT;} @@ -2331,6 +2317,18 @@ sub getCompletionStatus { return $self->NOT_ATTEMPTED; } +sub queryRestoreHash { + my $self = shift; + my $hashentry = shift; + my $part = shift; + $part = "0" if (!defined($part)); + return $self->NETWORK_FAILURE if ($self->{NAV_MAP}->{NETWORK_FAILURE}); + + $self->getReturnHash(); + + return $self->{RETURN_HASH}->{'resource.'.$part.'.'.$hashentry}; +} + =pod B