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 {
}
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 {
......
......@@ -52,7 +52,7 @@ sub update {
push(
@results,
$self->_bug_user_last_visit_to_hash(
$bug, $last_visit_ts, $params
$bug->id, $last_visit_ts, $params
));
}
$dbh->bz_commit_transaction();
......@@ -67,27 +67,23 @@ sub get {
$user->login(LOGIN_REQUIRED);
my @last_visits;
if ($ids) {
# 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
# skip aliases.
$user->visible_bugs([grep /^[0-9]$/, @$ids]);
}
my @last_visits = @{ $user->last_visited };
if ($ids) {
# remove bugs that we are not interested in if ids is passed in.
my %id_set = map { ($_ => 1) } @$ids;
@last_visits = grep { $id_set{ $_->bug_id } } @last_visits;
my %last_visit = map { $_->bug_id => $_->last_visit_ts } @{ $user->last_visited($ids) };
@last_visits = map { $self->_bug_user_last_visit_to_hash($_->id, $last_visit{$_}, $params) } @$ids;
}
else {
@last_visits = map {
$self->_bug_user_last_visit_to_hash($_->bug_id, $_->last_visit_ts, $params)
} @{ $user->last_visited };
}
return [
map {
$self->_bug_user_last_visit_to_hash($_->bug_id, $_->last_visit_ts,
$params)
} @last_visits
];
return \@last_visits;
}
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