summaryrefslogtreecommitdiffstats
path: root/extensions/TrackingFlags
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/TrackingFlags')
-rw-r--r--extensions/TrackingFlags/Extension.pm11
-rw-r--r--extensions/TrackingFlags/lib/Admin.pm4
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,