diff options
Diffstat (limited to 'app/presenters/ci/stage_presenter.rb')
-rw-r--r-- | app/presenters/ci/stage_presenter.rb | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/app/presenters/ci/stage_presenter.rb b/app/presenters/ci/stage_presenter.rb index 9ec3f8d153a..21bda86cded 100644 --- a/app/presenters/ci/stage_presenter.rb +++ b/app/presenters/ci/stage_presenter.rb @@ -4,6 +4,8 @@ module Ci class StagePresenter < Gitlab::View::Presenter::Delegated presents :stage + PRELOADED_RELATIONS = [:pipeline, :metadata, :tags, :job_artifacts_archive, :downstream_pipeline].freeze + def latest_ordered_statuses preload_statuses(stage.statuses.latest_ordered) end @@ -15,18 +17,9 @@ module Ci private def preload_statuses(statuses) - loaded_statuses = statuses.load - statuses.tap do |statuses| - # rubocop: disable CodeReuse/ActiveRecord - ActiveRecord::Associations::Preloader.new.preload(preloadable_statuses(loaded_statuses), %w[pipeline tags job_artifacts_archive metadata]) - # rubocop: enable CodeReuse/ActiveRecord - end - end + Preloaders::CommitStatusPreloader.new(statuses).execute(PRELOADED_RELATIONS) - def preloadable_statuses(statuses) - statuses.reject do |status| - status.instance_of?(::GenericCommitStatus) || status.instance_of?(::Ci::Bridge) - end + statuses end end end |