--- loncom/interface/lonnavmaps.pm 2005/04/07 06:56:23 1.320 +++ loncom/interface/lonnavmaps.pm 2005/04/11 12:20:22 1.321 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Navigate Maps Handler # -# $Id: lonnavmaps.pm,v 1.320 2005/04/07 06:56:23 albertel Exp $ +# $Id: lonnavmaps.pm,v 1.321 2005/04/11 12:20:22 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1588,11 +1588,9 @@ END my @allres=$navmap->retrieveResources(); foreach my $resource (@allres) { if ($resource->hasDiscussion()) { - my $ressymb; - if ($resource->symb() =~ m-(___adm/\w+/\w+)/(\d+)/bulletinboard$-) { - $ressymb = 'bulletin___'.$2.$1.'/'.$2.'/bulletinboard'; - } else { - $ressymb = $resource->symb(); + my $ressymb = $resource->symb(); + if ($ressymb =~ m-___adm/\w+/\w+/\d+/bulletinboard$-) { + $ressymb = $resource->wrap_symb(); } $haveDisc .= $ressymb.':'; $totdisc ++; @@ -2281,7 +2279,6 @@ sub getIterator { sub hasDiscussion { my $self = shift; my $symb = shift; - $self->generate_email_discuss_status(); if (!defined($self->{DISCUSSION_TIME})) { return 0; } @@ -2290,12 +2287,9 @@ sub hasDiscussion { # backward compatibility (bulletin boards used to be 'wrapped') my $ressymb = $symb; - if ($ressymb =~ m|adm/(\w+)/(\w+)/(\d+)/bulletinboard$|) { - unless ($ressymb =~ m|adm/wrapper/adm|) { - $ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard'; - } + if ($ressymb =~ m-___adm/\w+/\w+/\d+/bulletinboard$-) { + $ressymb = $self->wrap_symb($ressymb); } - if ( defined ( $self->{LAST_READ}->{$ressymb} ) ) { return $self->{DISCUSSION_TIME}->{$ressymb} > $self->{LAST_READ}->{$ressymb}; } else { @@ -2307,6 +2301,19 @@ sub hasDiscussion { # Private method: Does the given resource (as a symb string) have # current feedback? Returns the string in the feedback hash, which # will be false if it does not exist. + +sub wrap_symb { + my $self=shift; + my $symb = shift; + my $ressymb = $symb; + if ($ressymb =~ m-___(adm/\w+/\w+/)(\d+)(/bulletinboard)$-) { + unless ($ressymb =~ m|adm/wrapper/adm|) { + $ressymb = 'bulletin___'.$2.'___adm/wrapper/'.$1.$2.$3; + } + } + return $ressymb; +} + sub getFeedback { my $self = shift; my $symb = shift; @@ -3531,6 +3538,10 @@ sub symb { . '___' . $second . '___' . $symbSrc; return &Apache::lonnet::symbclean($symb); } +sub wrap_symb { + my $self = shift; + return $self->{NAV_MAP}->wrap_symb($self->symb()); +} sub title { my $self=shift; if ($self->{ID} eq '0.0') {