Class: Katello::ContentViewErratumFilter
- Inherits:
-
ContentViewFilter
- Object
- ActiveRecord::Base
- Model
- ContentViewFilter
- Katello::ContentViewErratumFilter
- Defined in:
- app/models/katello/content_view_erratum_filter.rb
Constant Summary collapse
- CONTENT_TYPE =
Erratum::CONTENT_TYPE
- ERRATA_TYPES =
{ 'bugfix' => _('Bug Fix'), 'enhancement' => _('Enhancement'), 'security' => _('Security') }.with_indifferent_access
Constants inherited from ContentViewFilter
Katello::ContentViewFilter::CONTENT_OPTIONS, Katello::ContentViewFilter::CONTENT_TYPES, Katello::ContentViewFilter::ERRATA, Katello::ContentViewFilter::PACKAGE_GROUP, Katello::ContentViewFilter::RPM
Instance Method Summary collapse
Methods inherited from ContentViewFilter
applicable, #applicable_repos, #as_json, class_for, #content_type, create_for, #filter_type, #original_packages=, #params_format, #resulting_products, rule_class_for, rule_ids_for, #validate_content_view, #validate_filter_repos, yum
Methods inherited from Model
Instance Method Details
#filter_by_id? ⇒ Boolean
51 52 53 |
# File 'app/models/katello/content_view_erratum_filter.rb', line 51 def filter_by_id? !erratum_rules.blank? && !erratum_rules.first.errata_id.blank? end |
#generate_clauses(_repo) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'app/models/katello/content_view_erratum_filter.rb', line 14 def generate_clauses(_repo) return if erratum_rules.blank? if filter_by_id? errata_ids = erratum_rules.map(&:errata_id) return { "id" => { "$in" => errata_ids } } unless errata_ids.empty? else # filtering by date/type rule_clauses = [] start_date = erratum_rules.first.start_date end_date = erratum_rules.first.end_date types = erratum_rules.first.types unless start_date.blank? && end_date.blank? date_range = {} date_range["$gte"] = start_date.to_time.as_json unless start_date.blank? date_range["$lte"] = end_date.to_time.as_json unless end_date.blank? rule_clauses << { erratum_rules.first.pulp_date_type => date_range } end unless types.blank? # {"type": {"$in": ["security", "enhancement", "bugfix"]} rule_clauses << { "type" => { "$in" => types } } end # Currently, an errata filter that specifies a date/type, will only have # single rule; therefore, we can return from here. case rule_clauses.size when 0 return when 1 return rule_clauses.first else return { '$and' => rule_clauses } end end end |