Sha256: 70d7b498294209993e3b51646b2364fcd5deb6ba18ec70117ad7013023b5c5ca

Contents?: true

Size: 1.34 KB

Versions: 107

Compression:

Stored size: 1.34 KB

Contents

module Katello
  class ContentViewModuleStreamFilter < ContentViewFilter
    CONTENT_TYPE = ModuleStream::CONTENT_TYPE
    has_many :module_stream_rules, :dependent => :destroy, :foreign_key => :content_view_filter_id,
                             :class_name => "Katello::ContentViewModuleStreamFilterRule"

    validates_lengths_from_database

    def generate_clauses(repo)
      rules = module_stream_rules || []
      ids = rules.map(&:module_stream_id)
      if self.original_module_streams
        ids.concat(repo.module_streams_without_errata.map(&:id))
      end
      ids
    end

    def original_module_streams=(value)
      self[:original_module_streams] = value
    end

    def content_unit_pulp_ids(repo, dependents = false)
      content_unit_ids = []
      module_ids = []

      self.module_stream_rules.each do |rule|
        module_ids << rule.module_stream_id
      end
      if self.original_module_streams
        module_ids.concat(repo.module_streams_without_errata.map(&:id))
      end
      modules_streams = ModuleStream.where(id: module_ids).includes(:rpms)
      content_unit_ids += modules_streams.pluck(:pulp_id).flatten.uniq
      if dependents && !modules_streams.empty?
        rpms = modules_streams.map(&:rpms).flatten
        content_unit_ids += rpms.pluck(:pulp_id).flatten.uniq
      end
      content_unit_ids.uniq
    end
  end
end

Version data entries

107 entries across 107 versions & 1 rubygems

Version Path
katello-4.11.0 app/models/katello/content_view_module_stream_filter.rb
katello-4.11.0.rc2 app/models/katello/content_view_module_stream_filter.rb
katello-4.11.0.rc1 app/models/katello/content_view_module_stream_filter.rb
katello-4.10.0 app/models/katello/content_view_module_stream_filter.rb
katello-4.9.2 app/models/katello/content_view_module_stream_filter.rb
katello-4.10.0.rc2 app/models/katello/content_view_module_stream_filter.rb
katello-4.10.0.rc1 app/models/katello/content_view_module_stream_filter.rb
katello-4.8.4 app/models/katello/content_view_module_stream_filter.rb
katello-4.9.1 app/models/katello/content_view_module_stream_filter.rb
katello-4.8.3 app/models/katello/content_view_module_stream_filter.rb
katello-4.9.0 app/models/katello/content_view_module_stream_filter.rb
katello-4.7.6 app/models/katello/content_view_module_stream_filter.rb
katello-4.8.2 app/models/katello/content_view_module_stream_filter.rb
katello-4.9.0.rc2 app/models/katello/content_view_module_stream_filter.rb
katello-4.9.0.rc1 app/models/katello/content_view_module_stream_filter.rb
katello-4.8.1 app/models/katello/content_view_module_stream_filter.rb
katello-4.7.5 app/models/katello/content_view_module_stream_filter.rb
katello-4.8.0 app/models/katello/content_view_module_stream_filter.rb
katello-4.8.0.rc2 app/models/katello/content_view_module_stream_filter.rb
katello-4.7.4 app/models/katello/content_view_module_stream_filter.rb