From a29bc8846fac5d7bcbe37ed306eb612bfc74acee Mon Sep 17 00:00:00 2001 From: Dave Lawrence Date: Thu, 3 Jan 2013 14:41:44 -0500 Subject: More MyDashboard work --- extensions/MyDashboard/lib/WebService.pm | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'extensions/MyDashboard/lib/WebService.pm') diff --git a/extensions/MyDashboard/lib/WebService.pm b/extensions/MyDashboard/lib/WebService.pm index 853ef2baf..07619e705 100644 --- a/extensions/MyDashboard/lib/WebService.pm +++ b/extensions/MyDashboard/lib/WebService.pm @@ -9,7 +9,7 @@ package Bugzilla::Extension::MyDashboard::WebService; use strict; use warnings; -use base qw(Bugzilla::WebService); +use base qw(Bugzilla::WebService Bugzilla::WebService::Bug); use Bugzilla::Constants; use Bugzilla::Error; @@ -92,6 +92,7 @@ sub prod_comp_search { sub run_bug_query { my($self, $params) = @_; + my $dbh = Bugzilla->dbh; my $user = Bugzilla->login(LOGIN_REQUIRED); defined $params->{query} @@ -103,6 +104,30 @@ sub run_bug_query { foreach my $qdef (QUERY_DEFS) { next if $qdef->{name} ne $params->{query}; my ($bugs, $query_string) = query_bugs($qdef); + + # Add last changes to each bug + foreach my $b (@$bugs) { + my $last_changes = {}; + my $activity = $self->history({ ids => [ $b->{bug_id} ], + start_time => $b->{changeddate} }); + if (@{$activity->{bugs}[0]{history}}) { + $last_changes->{activity} = $activity->{bugs}[0]{history}[0]{changes}; + $last_changes->{email} = $activity->{bugs}[0]{history}[0]{who}; + $last_changes->{when} = $activity->{bugs}[0]{history}[0]{when}; + } + my $last_comment_id = $dbh->selectrow_array(" + SELECT comment_id FROM longdescs + WHERE bug_id = ? AND bug_when >= ?", + undef, $b->{bug_id}, $b->{changeddate}); + if ($last_comment_id) { + my $comments = $self->comments({ comment_ids => [ $last_comment_id ] }); + $last_changes->{comment} = $comments->{comments}{$last_comment_id}{text}; + $last_changes->{email} = $comments->{comments}{$last_comment_id}{creator} if !$last_changes->{email}; + $last_changes->{when} = $comments->{comments}{$last_comment_id}{creation_time} if !$last_changes->{when}; + } + $b->{last_changes} = $last_changes; + } + $query_string =~ s/^POSTDATA=&//; $qdef->{bugs} = $bugs; $qdef->{buffer} = $query_string; -- cgit v1.2.3-24-g4f1b