Sha256: 34e083d0dcf17e3b07655384e0f6ce328a067c27384b01899121a013a4278478

Contents?: true

Size: 619 Bytes

Versions: 5

Compression:

Stored size: 619 Bytes

Contents

module SpreeMobility::CoreExt::Spree::ProductScopesWithMobilityDecorator
  def ascend_by_taxons_min_position(taxon_ids)
    # order() must not refer to select(), because select could be removed
    # in Spree::Products::Find
    joins(:classifications).
      where(::Spree::Classification.table_name => { taxon_id: taxon_ids }).
      select(
        [
          "#{::Spree::Product.table_name}.*",
          "MIN(#{::Spree::Classification.table_name}.position) AS min_position"
        ].join(', ')
      ).
      group(:id).
      order(Arel.sql("MIN(#{::Spree::Classification.table_name}.position) ASC"))
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
spree_mobility-1.4.0 lib/spree_mobility/core_ext/spree/product_scopes_with_mobility_decorator.rb
spree_mobility-1.3.0 lib/spree_mobility/core_ext/spree/product_scopes_with_mobility_decorator.rb
spree_mobility-1.2.0 lib/spree_mobility/core_ext/spree/product_scopes_with_mobility_decorator.rb
spree_mobility-1.1.0 lib/spree_mobility/core_ext/spree/product_scopes_with_mobility_decorator.rb
spree_mobility-1.0.0 lib/spree_mobility/core_ext/spree/product_scopes_with_mobility_decorator.rb