From eab44b1aad3f243dd69b1d30519b73a1e537fda2 Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Mon, 7 Apr 2014 02:41:11 -0400 Subject: Bug 489028 - Record last-visited time of bugs when logged in r=glob a=justdave --- Bugzilla/Bug.pm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'Bugzilla/Bug.pm') diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index b53847790..b66ad1e26 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -28,6 +28,7 @@ use Bugzilla::Group; use Bugzilla::Status; use Bugzilla::Comment; use Bugzilla::BugUrl; +use Bugzilla::BugUserLastVisit; use List::MoreUtils qw(firstidx uniq part); use List::Util qw(min max first); @@ -4081,6 +4082,23 @@ sub LogActivityEntry { } } +# Update bug_user_last_visit table +sub update_user_last_visit { + my ($self, $user, $last_visit_ts) = @_; + my $lv = Bugzilla::BugUserLastVisit->match({ bug_id => $self->id, + user_id => $user->id })->[0]; + + if ($lv) { + $lv->set(last_visit_ts => $last_visit_ts); + $lv->update; + } + else { + Bugzilla::BugUserLastVisit->create({ bug_id => $self->id, + user_id => $user->id, + last_visit_ts => $last_visit_ts }); + } +} + # Convert WebService API and email_in.pl field names to internal DB field # names. sub map_fields { @@ -4407,6 +4425,7 @@ sub _multi_select_accessor { 1; +__END__ =head1 B =over @@ -4415,6 +4434,11 @@ sub _multi_select_accessor { Ensures the accessors for custom fields are always created. +=item C + +Creates or updates a L for this bug and the supplied +$user, the timestamp given as $last_visit. + =back =head1 B -- cgit v1.2.3-24-g4f1b