]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1512815 - Skip preloading tracking flags in the Bug API
authorDylan William Hardison <dylan@hardison.net>
Tue, 22 Jan 2019 19:19:54 +0000 (14:19 -0500)
committerGitHub <noreply@github.com>
Tue, 22 Jan 2019 19:19:54 +0000 (14:19 -0500)
Bugzilla/Search.pm
Bugzilla/WebService/Bug.pm
extensions/TrackingFlags/lib/Flag.pm

index e9d879bfe1c0e96c56217ac0a25be9bea7817536..df2e787183dda6604977156c0210c0fa8d6dd98d 100644 (file)
@@ -352,7 +352,7 @@ sub SPECIAL_PARSING {
     # BMO - add ability to use pronoun for triage owners
     triage_owner => \&_triage_owner_pronoun,
   };
-  foreach my $field (Bugzilla->active_custom_fields) {
+  foreach my $field (Bugzilla->active_custom_fields({skip_extensions => 1})) {
     if ($field->type == FIELD_TYPE_DATETIME) {
       $map->{$field->name} = \&_datetime_translate;
     }
index 0f25b94610bad17be9a05a2bdc186791d51ad418..ab7bb3572faf33619f940afbaae7c691119a2e49 100644 (file)
@@ -55,7 +55,7 @@ sub DATE_FIELDS {
   };
 
   # Add date related custom fields
-  foreach my $field (Bugzilla->active_custom_fields) {
+  foreach my $field (Bugzilla->active_custom_fields({skip_extensions => 1})) {
     next
       unless ($field->type == FIELD_TYPE_DATETIME
       || $field->type == FIELD_TYPE_DATE);
@@ -536,6 +536,7 @@ sub search {
   my $user = Bugzilla->user;
   my $dbh  = Bugzilla->dbh;
 
+  local $Bugzilla::Extension::TrackingFlags::Flag::SKIP_PRELOAD = 1;
   Bugzilla->switch_to_shadow_db();
 
   my $match_params = dclone($params);
index c1ecbc4adf8a70f198aca602f01d685f40777601..903b0534c2925100fc2edc56f03609e96a163f9c 100644 (file)
@@ -23,6 +23,8 @@ use Bugzilla::Extension::TrackingFlags::Flag::Bug;
 use Bugzilla::Extension::TrackingFlags::Flag::Value;
 use Bugzilla::Extension::TrackingFlags::Flag::Visibility;
 
+our $SKIP_PRELOAD = 0;
+
 ###############################
 ####    Initialization     ####
 ###############################
@@ -210,7 +212,7 @@ sub match {
   my $is_active_filter = delete $params->{is_active};
 
   my $flags = $class->SUPER::match($params);
-  preload_all_the_things($flags, {bug_id => $bug_id});
+  preload_all_the_things($flags, {bug_id => $bug_id}) unless $SKIP_PRELOAD;
 
   if ($is_active_filter) {
     $flags = [grep { $_->is_active || exists $_->{bug_flag} } @$flags];
@@ -223,7 +225,7 @@ sub get_all {
   my $cache = Bugzilla->request_cache;
   if (!exists $cache->{'tracking_flags'}) {
     my @tracking_flags = $self->SUPER::get_all(@_);
-    preload_all_the_things(\@tracking_flags);
+    preload_all_the_things(\@tracking_flags) unless $SKIP_PRELOAD;
     my %tracking_flags_hash = map { $_->flag_id => $_ } @tracking_flags;
     $cache->{'tracking_flags'} = \%tracking_flags_hash;
   }