From ec2f99a46714fd50061e003542e932a402cb7847 Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Wed, 19 Jun 2019 15:50:37 +0100 Subject: [PATCH] Refactor OrderHelper.order_links: extract some logic from order_links to make it more simple and pass rubocop tests --- .rubocop_manual_todo.yml | 5 --- .../spree/admin/orders_helper_decorator.rb | 42 ++++++++++++------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/.rubocop_manual_todo.yml b/.rubocop_manual_todo.yml index b8ad5662cc..062a6ce8eb 100644 --- a/.rubocop_manual_todo.yml +++ b/.rubocop_manual_todo.yml @@ -68,7 +68,6 @@ Metrics/LineLength: - app/helpers/shop_helper.rb - app/helpers/spree/admin/base_helper_decorator.rb - app/helpers/spree/admin/navigation_helper_decorator.rb - - app/helpers/spree/admin/orders_helper_decorator.rb - app/helpers/spree/orders_helper.rb - app/jobs/subscription_confirm_job.rb - app/mailers/subscription_mailer.rb @@ -429,7 +428,6 @@ Metrics/AbcSize: - app/helpers/checkout_helper.rb - app/helpers/i18n_helper.rb - app/helpers/order_cycles_helper.rb - - app/helpers/spree/admin/orders_helper_decorator.rb - app/helpers/spree/orders_helper.rb - app/jobs/subscription_placement_job.rb - app/mailers/producer_mailer.rb @@ -570,7 +568,6 @@ Metrics/CyclomaticComplexity: - app/helpers/checkout_helper.rb - app/helpers/i18n_helper.rb - app/helpers/order_cycles_helper.rb - - app/helpers/spree/admin/orders_helper_decorator.rb - app/models/enterprise.rb - app/models/enterprise_relationship.rb - app/models/product_import/entry_processor.rb @@ -600,7 +597,6 @@ Metrics/PerceivedComplexity: - app/helpers/checkout_helper.rb - app/helpers/i18n_helper.rb - app/helpers/order_cycles_helper.rb - - app/helpers/spree/admin/orders_helper_decorator.rb - app/models/enterprise_relationship.rb - app/models/product_import/entry_processor.rb - app/models/product_import/entry_validator.rb @@ -646,7 +642,6 @@ Metrics/MethodLength: - app/controllers/user_registrations_controller.rb - app/helpers/checkout_helper.rb - app/helpers/order_cycles_helper.rb - - app/helpers/spree/admin/orders_helper_decorator.rb - app/jobs/subscription_placement_job.rb - app/mailers/producer_mailer.rb - app/models/column_preference.rb diff --git a/app/helpers/spree/admin/orders_helper_decorator.rb b/app/helpers/spree/admin/orders_helper_decorator.rb index b2f96b16da..6035445c4d 100644 --- a/app/helpers/spree/admin/orders_helper_decorator.rb +++ b/app/helpers/spree/admin/orders_helper_decorator.rb @@ -5,28 +5,38 @@ module Spree @order ||= order links = [] links << edit_order_link unless action_name == "edit" - if @order.complete? - links << resend_confirmation_link - if @order.distributor.can_invoice? - links << send_invoice_link_with_url - else - links << send_invoice_link_without_url - end - links << print_invoice_link - if Spree::Config.enable_receipt_printing? - links << print_ticket_link - links << select_ticket_printer_link - end - end - if @order.ready_to_ship? - links << ship_order_link - end + links << complete_order_links if @order.complete? + links << ship_order_link if @order.ready_to_ship? links << cancel_order_link if @order.can_cancel? links end private + def complete_order_links + complete_order_links = [] + complete_order_links << resend_confirmation_link + complete_order_links << invoice_links + complete_order_links << ticket_links + complete_order_links + end + + def invoice_links + invoice_links = [] + invoice_links << if @order.distributor.can_invoice? + send_invoice_link_with_url + else + send_invoice_link_without_url + end + invoice_links << print_invoice_link + invoice_links + end + + def ticket_links + return [] unless Spree::Config.enable_receipt_printing? + [print_ticket_link, select_ticket_printer_link] + end + def edit_order_link { name: t(:edit_order), url: edit_admin_order_path(@order),