diff options
Diffstat (limited to 'extensions/TrackingFlags')
-rw-r--r-- | extensions/TrackingFlags/Extension.pm | 11 | ||||
-rw-r--r-- | extensions/TrackingFlags/lib/Admin.pm | 4 |
2 files changed, 13 insertions, 2 deletions
diff --git a/extensions/TrackingFlags/Extension.pm b/extensions/TrackingFlags/Extension.pm index 3ba9e768b..9b3d46ad2 100644 --- a/extensions/TrackingFlags/Extension.pm +++ b/extensions/TrackingFlags/Extension.pm @@ -27,6 +27,17 @@ use Bugzilla::Product; our $VERSION = '1'; +BEGIN { + *Bugzilla::tracking_flag_names = \&_tracking_flag_names; +} + +sub _tracking_flag_names { + # return just a list of names, hitting the database directly to avoid the + # overhead of object creation + return Bugzilla->request_cache->{tracking_flag_names} ||= + Bugzilla->dbh->selectcol_arrayref("SELECT name FROM tracking_flags"); +} + sub page_before_template { my ($self, $args) = @_; my $page = $args->{'page_id'}; diff --git a/extensions/TrackingFlags/lib/Admin.pm b/extensions/TrackingFlags/lib/Admin.pm index 389acde2c..0b19fcf80 100644 --- a/extensions/TrackingFlags/lib/Admin.pm +++ b/extensions/TrackingFlags/lib/Admin.pm @@ -343,9 +343,9 @@ sub _update_db_values { my $value_obj = Bugzilla::Extension::TrackingFlags::Flag::Value->new($value->{id}) || ThrowCodeError('tracking_flags_invalid_item_id', { item => 'flag value', id => $flag->{id} }); my $old_value = $value_obj->value; + $value_obj->set_all($object_set); + $value_obj->update(); if ($object_set->{value} ne $old_value) { - $value_obj->set_all($object_set); - $value_obj->update(); Bugzilla::Extension::TrackingFlags::Flag::Bug->update_all_values({ value_obj => $value_obj, old_value => $old_value, |