From 64c2bdda1cd3b51753a02ac7681941579f91e45f Mon Sep 17 00:00:00 2001 From: Hugo Daniel Date: Tue, 6 Feb 2018 12:22:46 +0100 Subject: [PATCH 1/3] Added loading of all active or complete order cycles concerned by the current user to the reports form collection User will see all order cycles he is concerned by as producer, distributor or coordinator --- .../spree/admin/reports_controller_decorator.rb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/controllers/spree/admin/reports_controller_decorator.rb b/app/controllers/spree/admin/reports_controller_decorator.rb index 10cc9d48f8..0aec336b9c 100644 --- a/app/controllers/spree/admin/reports_controller_decorator.rb +++ b/app/controllers/spree/admin/reports_controller_decorator.rb @@ -208,8 +208,7 @@ Spree::Admin::ReportsController.class_eval do # My suppliers and any suppliers supplying products I distribute @suppliers = permissions.visible_enterprises_for_order_reports.is_primary_producer - @order_cycles = OrderCycle.active_or_complete. - involving_managed_distributors_of(spree_current_user).order('orders_close_at DESC') + @order_cycles = load_order_cycles @report_types = report_types[:orders_and_fulfillment] @report_type = params[:report_type] @@ -332,4 +331,17 @@ Spree::Admin::ReportsController.class_eval do def timestamp Time.zone.now.strftime("%Y%m%d") end + + # Loads all order cycles concerned by current user, may he be producer, distributor or coordinator + def load_order_cycles + @order_cycles = OrderCycle.active_or_complete.involving_managed_distributors_of(spree_current_user) + + # Avoids duplicates + OrderCycle.active_or_complete.involving_managed_producers_of(spree_current_user).each do |order_cycle| + @order_cycles << order_cycle unless @order_cycles.include?(order_cycle) + end + + @order_cycles.sort_by! {|order_cycle| order_cycle.orders_close_at} + return @order_cycles + end end From 65fea6291e1fc0c80b5e4ce9562a96f132dfc7a7 Mon Sep 17 00:00:00 2001 From: Hugo Daniel Date: Tue, 6 Feb 2018 12:49:03 +0100 Subject: [PATCH 2/3] CodeClimate requested changes --- app/controllers/spree/admin/reports_controller_decorator.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/controllers/spree/admin/reports_controller_decorator.rb b/app/controllers/spree/admin/reports_controller_decorator.rb index 0aec336b9c..9d00949b6c 100644 --- a/app/controllers/spree/admin/reports_controller_decorator.rb +++ b/app/controllers/spree/admin/reports_controller_decorator.rb @@ -338,10 +338,9 @@ Spree::Admin::ReportsController.class_eval do # Avoids duplicates OrderCycle.active_or_complete.involving_managed_producers_of(spree_current_user).each do |order_cycle| - @order_cycles << order_cycle unless @order_cycles.include?(order_cycle) + @order_cycles << order_cycle unless @order_cycles.include?(order_cycle) end - @order_cycles.sort_by! {|order_cycle| order_cycle.orders_close_at} - return @order_cycles + @order_cycles.sort_by!(&:orders_close_at) end end From 3fa5ca7eae2d909f2603342c19d23692773b2ed4 Mon Sep 17 00:00:00 2001 From: Hugo Daniel Date: Wed, 7 Feb 2018 15:56:39 +0100 Subject: [PATCH 3/3] Use accessible_by method instead of involving_managed_distributors method to fetch all order cycles --- .../spree/admin/reports_controller_decorator.rb | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/app/controllers/spree/admin/reports_controller_decorator.rb b/app/controllers/spree/admin/reports_controller_decorator.rb index 9d00949b6c..20379694a8 100644 --- a/app/controllers/spree/admin/reports_controller_decorator.rb +++ b/app/controllers/spree/admin/reports_controller_decorator.rb @@ -208,7 +208,7 @@ Spree::Admin::ReportsController.class_eval do # My suppliers and any suppliers supplying products I distribute @suppliers = permissions.visible_enterprises_for_order_reports.is_primary_producer - @order_cycles = load_order_cycles + @order_cycles = OrderCycle.active_or_complete.accessible_by(spree_current_user).order('orders_close_at DESC') @report_types = report_types[:orders_and_fulfillment] @report_type = params[:report_type] @@ -331,16 +331,4 @@ Spree::Admin::ReportsController.class_eval do def timestamp Time.zone.now.strftime("%Y%m%d") end - - # Loads all order cycles concerned by current user, may he be producer, distributor or coordinator - def load_order_cycles - @order_cycles = OrderCycle.active_or_complete.involving_managed_distributors_of(spree_current_user) - - # Avoids duplicates - OrderCycle.active_or_complete.involving_managed_producers_of(spree_current_user).each do |order_cycle| - @order_cycles << order_cycle unless @order_cycles.include?(order_cycle) - end - - @order_cycles.sort_by!(&:orders_close_at) - end end