From 9451fe4f8c5662127d53c23b6976ec5f203d0f0e Mon Sep 17 00:00:00 2001 From: Dave Lawrence Date: Fri, 6 Sep 2013 12:43:59 -0400 Subject: Bug 913208 - Allow deleting of tracking flags that do not have bug values set but have activity entries in bugs_activity r=glob --- extensions/TrackingFlags/lib/Flag.pm | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'extensions/TrackingFlags/lib/Flag.pm') diff --git a/extensions/TrackingFlags/lib/Flag.pm b/extensions/TrackingFlags/lib/Flag.pm index 26780a2b1..29f81669d 100644 --- a/extensions/TrackingFlags/lib/Flag.pm +++ b/extensions/TrackingFlags/lib/Flag.pm @@ -215,13 +215,6 @@ sub remove_from_db { my $self = shift; my $dbh = Bugzilla->dbh; - # Check to see if bug activity table has records - my $has_activity = $dbh->selectrow_array("SELECT COUNT(*) FROM bugs_activity - WHERE fieldid = ?", undef, $self->id); - if ($has_activity) { - ThrowUserError('tracking_flag_has_activity', { flag => $self }); - } - # Check to see if tracking_flags_bugs table has records if ($self->bug_count) { ThrowUserError('tracking_flag_has_contents', { flag => $self }); @@ -234,6 +227,7 @@ sub remove_from_db { eval { $dbh->bz_start_transaction(); + $dbh->do('DELETE FROM bugs_activity WHERE fieldid = ?', undef, $self->id); $dbh->do('DELETE FROM fielddefs WHERE name = ?', undef, $self->name); $dbh->bz_commit_transaction(); @@ -407,6 +401,17 @@ sub bug_count { undef, $self->flag_id); } +sub activity_count { + my ($self) = @_; + return $self->{'activity_count'} if defined $self->{'activity_count'}; + my $dbh = Bugzilla->dbh; + return $self->{'activity_count'} = scalar $dbh->selectrow_array(" + SELECT COUNT(bug_id) + FROM bugs_activity + WHERE fieldid = ?", + undef, $self->id); +} + ###################################### # Compatibility with Bugzilla::Field # ###################################### -- cgit v1.2.3-24-g4f1b