From 91521dc2b0877a1d96ef3b192e462df65cd0e9ac Mon Sep 17 00:00:00 2001 From: Matt-Yorkley Date: Thu, 15 Mar 2018 21:39:15 +0000 Subject: [PATCH] Improve import_date queries --- app/controllers/admin/variant_overrides_controller.rb | 7 +++---- .../spree/admin/products_controller_decorator.rb | 11 ++++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/controllers/admin/variant_overrides_controller.rb b/app/controllers/admin/variant_overrides_controller.rb index da2006ec2b..4a49f53c7c 100644 --- a/app/controllers/admin/variant_overrides_controller.rb +++ b/app/controllers/admin/variant_overrides_controller.rb @@ -60,15 +60,14 @@ module Admin end def inventory_import_dates - options = [{ id: '0', name: 'All' }] - import_dates = VariantOverride. - select(:import_date). + select('DISTINCT variant_overrides.import_date'). where('variant_overrides.hub_id IN (?) AND variant_overrides.import_date IS NOT NULL', editable_enterprises.collect(&:id)). order('import_date DESC') - import_dates.collect(&:import_date).uniq.map { |i| options.push(id: i.to_date, name: i.to_date.to_formatted_s(:long)) } + options = [{ id: '0', name: 'All' }] + import_dates.collect(&:import_date).map { |i| options.push(id: i.to_date, name: i.to_date.to_formatted_s(:long)) } options end diff --git a/app/controllers/spree/admin/products_controller_decorator.rb b/app/controllers/spree/admin/products_controller_decorator.rb index 07b818d1ea..7d58e94dfe 100644 --- a/app/controllers/spree/admin/products_controller_decorator.rb +++ b/app/controllers/spree/admin/products_controller_decorator.rb @@ -100,14 +100,12 @@ Spree::Admin::ProductsController.class_eval do def load_form_data @producers = OpenFoodNetwork::Permissions.new(spree_current_user).managed_product_enterprises.is_primary_producer.by_name @taxons = Spree::Taxon.order(:name) - import_dates = [{id: '0', name: ''}] - product_import_dates.map { |i| import_dates.push(id: i.to_date, name: i.to_date.to_formatted_s(:long)) } - @import_dates = import_dates.uniq.to_json + @import_dates = product_import_dates.uniq.to_json end def product_import_dates import_dates = Spree::Variant. - select('spree_variants.import_date'). + select('DISTINCT spree_variants.import_date'). joins(:product). where('spree_products.supplier_id IN (?)', editable_enterprises.collect(&:id)). where('spree_variants.import_date IS NOT NULL'). @@ -115,7 +113,10 @@ Spree::Admin::ProductsController.class_eval do where(spree_variants: {deleted_at: nil}). order('spree_variants.import_date DESC') - import_dates.collect(&:import_date).uniq + options = [{id: '0', name: ''}] + import_dates.collect(&:import_date).map { |i| options.push(id: i.to_date, name: i.to_date.to_formatted_s(:long)) } + + options end def strip_new_properties