mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-14 23:47:48 +00:00
Refactor import_date_scope
This commit is contained in:
@@ -53,7 +53,7 @@ module Api
|
||||
editable_products.merge(product_scope)
|
||||
|
||||
if params[:import_date].present?
|
||||
product_query = product_query.joins(:variants).merge(import_date_scope).group_by_products_id
|
||||
product_query = product_query.imported_on(params[:import_date]).group_by_products_id
|
||||
end
|
||||
|
||||
@products = product_query.order('created_at DESC').
|
||||
@@ -110,11 +110,6 @@ module Api
|
||||
scope.includes(:master)
|
||||
end
|
||||
|
||||
def import_date_scope
|
||||
import_date = params[:import_date].to_datetime
|
||||
Spree::Variant.where(import_date: import_date..import_date + 24.hours)
|
||||
end
|
||||
|
||||
def paged_products_for_producers(producers)
|
||||
Spree::Product.scoped.
|
||||
merge(product_scope).
|
||||
|
||||
@@ -56,6 +56,11 @@ Spree::Product.class_eval do
|
||||
ON (o_order_cycles.id = o_exchanges.order_cycle_id)")
|
||||
}
|
||||
|
||||
scope :imported_on, lambda { |date|
|
||||
import_date = date.to_datetime
|
||||
joins(:variants).merge(Spree::Variant.where(import_date: import_date..import_date + 24.hours))
|
||||
}
|
||||
|
||||
scope :with_order_cycles_inner, -> {
|
||||
joins(variants_including_master: { exchanges: :order_cycle })
|
||||
}
|
||||
|
||||
@@ -390,6 +390,17 @@ module Spree
|
||||
expect(stockable_products).to_not include p3
|
||||
end
|
||||
end
|
||||
|
||||
describe "imported_on" do
|
||||
let!(:v1) { create(:variant, import_date: 1.day.ago) }
|
||||
let!(:v2) { create(:variant, import_date: 2.days.ago) }
|
||||
let!(:v3) { create(:variant, import_date: 1.day.ago) }
|
||||
|
||||
it "returns products imported on given day" do
|
||||
imported_products = Spree::Product.imported_on(1.day.ago.to_date)
|
||||
expect(imported_products).to include v1.product, v3.product
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "properties" do
|
||||
|
||||
Reference in New Issue
Block a user