From 9b126df5b6fa052eadf7ad56cb86222cd7e55d5e Mon Sep 17 00:00:00 2001 From: Rob H Date: Mon, 23 Jun 2014 14:31:16 +1000 Subject: [PATCH] Add variant display_name to reports --- .../admin/reports_controller_decorator.rb | 36 +++++++++---------- app/models/spree/variant_decorator.rb | 5 +++ .../products_and_inventory_report.rb | 2 +- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/app/controllers/spree/admin/reports_controller_decorator.rb b/app/controllers/spree/admin/reports_controller_decorator.rb index 038b5dd1b0..62cfb585cd 100644 --- a/app/controllers/spree/admin/reports_controller_decorator.rb +++ b/app/controllers/spree/admin/reports_controller_decorator.rb @@ -113,7 +113,7 @@ Spree::Admin::ReportsController.class_eval do columns = [ proc { |lis| lis.first.variant.product.supplier.name }, proc { |lis| lis.first.variant.product.name }, proc { |lis| lis.first.variant.product.group_buy ? (lis.first.variant.product.group_buy_unit_size || 0.0) : "" }, - proc { |lis| lis.first.variant.options_text }, + proc { |lis| lis.first.variant.full_name }, proc { |lis| lis.first.variant.weight || 0 }, proc { |lis| lis.sum { |li| li.quantity } }, proc { |lis| lis.sum { |li| li.max_quantity || 0 } }, @@ -134,7 +134,7 @@ Spree::Admin::ReportsController.class_eval do proc { |lis| ( (lis.first.variant.product.group_buy_unit_size || 0).zero? ? 0 : ( lis.sum { |li| ( [li.max_quantity || 0, li.quantity || 0].max ) * (li.variant.weight || 0) } / lis.first.variant.product.group_buy_unit_size ) ).floor }, proc { |lis| lis.sum { |li| ( [li.max_quantity || 0, li.quantity || 0].max) * (li.variant.weight || 0) } - ( ( (lis.first.variant.product.group_buy_unit_size || 0).zero? ? 0 : ( lis.sum { |li| ( [li.max_quantity || 0, li.quantity || 0].max) * (li.variant.weight || 0) } / lis.first.variant.product.group_buy_unit_size ) ).floor * (lis.first.variant.product.group_buy_unit_size || 0) ) } ] }, { group_by: proc { |li| li.variant }, - sort_by: proc { |variant| variant.options_text } } ] + sort_by: proc { |variant| variant.full_name } } ] when "bulk_coop_allocation" @@ -143,7 +143,7 @@ Spree::Admin::ReportsController.class_eval do columns = [ proc { |lis| lis.first.order.bill_address.firstname + " " + lis.first.order.bill_address.lastname }, proc { |lis| lis.first.variant.product.name }, proc { |lis| lis.first.variant.product.group_buy ? (lis.first.variant.product.group_buy_unit_size || 0.0) : "" }, - proc { |lis| lis.first.variant.options_text }, + proc { |lis| lis.first.variant.full_name }, proc { |lis| lis.first.variant.weight || 0 }, proc { |lis| lis.sum { |li| li.quantity } }, proc { |lis| lis.sum { |li| li.max_quantity || 0 } }, @@ -162,7 +162,7 @@ Spree::Admin::ReportsController.class_eval do proc { |lis| ( (lis.first.variant.product.group_buy_unit_size || 0).zero? ? 0 : ( lis.sum { |li| ( [li.max_quantity || 0, li.quantity || 0].max ) * (li.variant.weight || 0) } / lis.first.variant.product.group_buy_unit_size ) ).floor * (lis.first.variant.product.group_buy_unit_size || 0) }, proc { |lis| lis.sum { |li| ( [li.max_quantity || 0, li.quantity || 0].max ) * (li.variant.weight || 0) } - ( ( (lis.first.variant.product.group_buy_unit_size || 0).zero? ? 0 : ( lis.sum { |li| ( [li.max_quantity || 0, li.quantity || 0].max ) * (li.variant.weight || 0) } / lis.first.variant.product.group_buy_unit_size ) ).floor * (lis.first.variant.product.group_buy_unit_size || 0) ) } ] }, { group_by: proc { |li| li.variant }, - sort_by: proc { |variant| variant.options_text } }, + sort_by: proc { |variant| variant.full_name } }, { group_by: proc { |li| li.order }, sort_by: proc { |order| order.to_s } } ] @@ -172,13 +172,13 @@ Spree::Admin::ReportsController.class_eval do columns = [ proc { |lis| lis.first.order.bill_address.firstname + " " + lis.first.order.bill_address.lastname }, proc { |lis| lis.first.variant.product.name }, - proc { |lis| lis.first.variant.options_text }, + proc { |lis| lis.first.variant.full_name }, proc { |lis| lis.sum { |li| li.quantity } } ] rules = [ { group_by: proc { |li| li.variant.product }, sort_by: proc { |product| product.name } }, { group_by: proc { |li| li.variant }, - sort_by: proc { |variant| variant.options_text } }, + sort_by: proc { |variant| variant.full_name } }, { group_by: proc { |li| li.order }, sort_by: proc { |order| order.to_s } } ] @@ -202,7 +202,7 @@ Spree::Admin::ReportsController.class_eval do columns = [ proc { |lis| lis.first.variant.product.supplier.name }, proc { |lis| lis.first.variant.product.name }, proc { |lis| lis.first.variant.product.group_buy ? (lis.first.variant.product.group_buy_unit_size || 0.0) : "" }, - proc { |lis| lis.first.variant.options_text }, + proc { |lis| lis.first.variant.full_name }, proc { |lis| lis.first.variant.weight || 0 }, proc { |lis| lis.sum { |li| li.quantity } }, proc { |lis| lis.sum { |li| li.max_quantity || 0 } }, @@ -223,7 +223,7 @@ Spree::Admin::ReportsController.class_eval do proc { |lis| ( (lis.first.variant.product.group_buy_unit_size || 0).zero? ? 0 : ( lis.sum { |li| ( [li.max_quantity || 0, li.quantity || 0].max ) * (li.variant.weight || 0) } / lis.first.variant.product.group_buy_unit_size ) ).floor }, proc { |lis| lis.sum { |li| ( [li.max_quantity || 0, li.quantity || 0].max ) * (li.variant.weight || 0) } - ( ( (lis.first.variant.product.group_buy_unit_size || 0).zero? ? 0 : ( lis.sum { |li| ( [li.max_quantity || 0, li.quantity || 0].max ) * (li.variant.weight || 0) } / lis.first.variant.product.group_buy_unit_size ) ).floor * (lis.first.variant.product.group_buy_unit_size || 0) ) } ] }, { group_by: proc { |li| li.variant }, - sort_by: proc { |variant| variant.options_text } } ] + sort_by: proc { |variant| variant.full_name } } ] end @@ -390,7 +390,7 @@ Spree::Admin::ReportsController.class_eval do columns = [ proc { |line_items| line_items.first.variant.product.supplier.name }, proc { |line_items| line_items.first.variant.product.name }, - proc { |line_items| line_items.first.variant.options_text }, + proc { |line_items| line_items.first.variant.full_name }, proc { |line_items| line_items.sum { |li| li.quantity } }, proc { |line_items| line_items.first.variant.price }, proc { |line_items| line_items.sum { |li| li.quantity * li.price } }, @@ -402,7 +402,7 @@ Spree::Admin::ReportsController.class_eval do { group_by: proc { |line_item| line_item.variant.product }, sort_by: proc { |product| product.name } }, { group_by: proc { |line_item| line_item.variant }, - sort_by: proc { |variant| variant.options_text } } ] + sort_by: proc { |variant| variant.full_name } } ] when "order_cycle_supplier_totals_by_distributor" table_items = @line_items @@ -412,7 +412,7 @@ Spree::Admin::ReportsController.class_eval do columns = [ proc { |line_items| line_items.first.variant.product.supplier.name }, proc { |line_items| line_items.first.variant.product.name }, - proc { |line_items| line_items.first.variant.options_text }, + proc { |line_items| line_items.first.variant.full_name }, proc { |line_items| line_items.first.order.distributor.name }, proc { |line_items| line_items.sum { |li| li.quantity } }, proc { |line_items| line_items.first.variant.price }, @@ -424,7 +424,7 @@ Spree::Admin::ReportsController.class_eval do { group_by: proc { |line_item| line_item.variant.product }, sort_by: proc { |product| product.name } }, { group_by: proc { |line_item| line_item.variant }, - sort_by: proc { |variant| variant.options_text }, + sort_by: proc { |variant| variant.full_name }, summary_columns: [ proc { |line_items| "" }, proc { |line_items| "" }, proc { |line_items| "" }, @@ -445,7 +445,7 @@ Spree::Admin::ReportsController.class_eval do columns = [ proc { |line_items| line_items.first.order.distributor.name }, proc { |line_items| line_items.first.variant.product.supplier.name }, proc { |line_items| line_items.first.variant.product.name }, - proc { |line_items| line_items.first.variant.options_text }, + proc { |line_items| line_items.first.variant.full_name }, proc { |line_items| line_items.sum { |li| li.quantity } }, proc { |line_items| line_items.first.variant.price }, proc { |line_items| line_items.sum { |li| li.quantity * li.price } }, @@ -468,7 +468,7 @@ Spree::Admin::ReportsController.class_eval do { group_by: proc { |line_item| line_item.variant.product }, sort_by: proc { |product| product.name } }, { group_by: proc { |line_item| line_item.variant }, - sort_by: proc { |variant| variant.options_text } } ] + sort_by: proc { |variant| variant.full_name } } ] when "order_cycle_customer_totals" table_items = @line_items @@ -485,7 +485,7 @@ Spree::Admin::ReportsController.class_eval do proc { |line_items| line_items.first.order.bill_address.phone }, proc { |line_items| line_items.first.variant.product.supplier.name }, proc { |line_items| line_items.first.variant.product.name }, - proc { |line_items| line_items.first.variant.options_text }, + proc { |line_items| line_items.first.variant.full_name }, proc { |line_items| line_items.sum { |li| li.quantity } }, proc { |line_items| line_items.sum { |li| li.quantity * li.price } }, proc { |line_items| "" }, @@ -530,7 +530,7 @@ Spree::Admin::ReportsController.class_eval do { group_by: proc { |line_item| line_item.variant.product }, sort_by: proc { |product| product.name } }, { group_by: proc { |line_item| line_item.variant }, - sort_by: proc { |variant| variant.options_text } } ] + sort_by: proc { |variant| variant.full_name } } ] else table_items = @line_items @@ -540,7 +540,7 @@ Spree::Admin::ReportsController.class_eval do columns = [ proc { |line_items| line_items.first.variant.product.supplier.name }, proc { |line_items| line_items.first.variant.product.name }, - proc { |line_items| line_items.first.variant.options_text }, + proc { |line_items| line_items.first.variant.full_name }, proc { |line_items| line_items.sum { |li| li.quantity } }, proc { |line_items| line_items.first.variant.price }, proc { |line_items| line_items.sum { |li| li.quantity * li.price } }, @@ -552,7 +552,7 @@ Spree::Admin::ReportsController.class_eval do { group_by: proc { |line_item| line_item.variant.product }, sort_by: proc { |product| product.name } }, { group_by: proc { |line_item| line_item.variant }, - sort_by: proc { |variant| variant.options_text } } ] + sort_by: proc { |variant| variant.full_name } } ] end diff --git a/app/models/spree/variant_decorator.rb b/app/models/spree/variant_decorator.rb index 9410c14902..81977bc05a 100644 --- a/app/models/spree/variant_decorator.rb +++ b/app/models/spree/variant_decorator.rb @@ -45,6 +45,11 @@ Spree::Variant.class_eval do self.option_values.destroy ovs end + def full_name + return unit_to_display if display_name.blank? + display_name + " (" + unit_to_display + ")" + end + def name_to_display display_name || product.name end diff --git a/lib/open_food_network/products_and_inventory_report.rb b/lib/open_food_network/products_and_inventory_report.rb index 2e6260f82f..bd8e80ca0c 100644 --- a/lib/open_food_network/products_and_inventory_report.rb +++ b/lib/open_food_network/products_and_inventory_report.rb @@ -26,7 +26,7 @@ module OpenFoodNetwork variant.product.supplier.address.city, variant.product.name, variant.product.properties.map(&:name).join(", "), - variant.options_text, + variant.full_name, variant.price, variant.product.group_buy_unit_size, ""