Commit e2477726 authored by Dylan Hardison's avatar Dylan Hardison

Bug 1169181 - The bug_user_last_visit method returns an empty array for old bugs

r=dkl,a=dkl
parent 979ba53d
...@@ -922,9 +922,10 @@ sub groups { ...@@ -922,9 +922,10 @@ sub groups {
} }
sub last_visited { sub last_visited {
my ($self) = @_; my ($self, $ids) = @_;
return Bugzilla::BugUserLastVisit->match({ user_id => $self->id }); return Bugzilla::BugUserLastVisit->match({ user_id => $self->id,
$ids ? ( bug_id => $ids ) : () });
} }
sub is_involved_in_bug { sub is_involved_in_bug {
......
...@@ -52,7 +52,7 @@ sub update { ...@@ -52,7 +52,7 @@ sub update {
push( push(
@results, @results,
$self->_bug_user_last_visit_to_hash( $self->_bug_user_last_visit_to_hash(
$bug, $last_visit_ts, $params $bug->id, $last_visit_ts, $params
)); ));
} }
$dbh->bz_commit_transaction(); $dbh->bz_commit_transaction();
...@@ -67,27 +67,23 @@ sub get { ...@@ -67,27 +67,23 @@ sub get {
$user->login(LOGIN_REQUIRED); $user->login(LOGIN_REQUIRED);
my @last_visits;
if ($ids) { if ($ids) {
# Cache permissions for bugs. This highly reduces the number of calls to # Cache permissions for bugs. This highly reduces the number of calls to
# the DB. visible_bugs() is only able to handle bug IDs, so we have to # the DB. visible_bugs() is only able to handle bug IDs, so we have to
# skip aliases. # skip aliases.
$user->visible_bugs([grep /^[0-9]$/, @$ids]); $user->visible_bugs([grep /^[0-9]$/, @$ids]);
}
my @last_visits = @{ $user->last_visited };
if ($ids) { my %last_visit = map { $_->bug_id => $_->last_visit_ts } @{ $user->last_visited($ids) };
# remove bugs that we are not interested in if ids is passed in. @last_visits = map { $self->_bug_user_last_visit_to_hash($_->id, $last_visit{$_}, $params) } @$ids;
my %id_set = map { ($_ => 1) } @$ids; }
@last_visits = grep { $id_set{ $_->bug_id } } @last_visits; else {
@last_visits = map {
$self->_bug_user_last_visit_to_hash($_->bug_id, $_->last_visit_ts, $params)
} @{ $user->last_visited };
} }
return [ return \@last_visits;
map {
$self->_bug_user_last_visit_to_hash($_->bug_id, $_->last_visit_ts,
$params)
} @last_visits
];
} }
sub _bug_user_last_visit_to_hash { sub _bug_user_last_visit_to_hash {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment