From 810656a53b9c8fadbfbd1dabe7f20ba87ff53a6b Mon Sep 17 00:00:00 2001 From: wvengen Date: Mon, 25 Nov 2013 10:04:44 +0100 Subject: [PATCH] small link_to_ordering refactoring --- app/helpers/group_orders_helper.rb | 22 +++++++++------------- app/views/shared/_open_orders.html.haml | 4 +++- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/app/helpers/group_orders_helper.rb b/app/helpers/group_orders_helper.rb index 1c734498..11434a83 100644 --- a/app/helpers/group_orders_helper.rb +++ b/app/helpers/group_orders_helper.rb @@ -7,24 +7,20 @@ module GroupOrdersHelper }.join("\n") end + # Returns a link to the page where a group_order can be edited. + # If the option :show is true, the link is for showing the group_order. def link_to_ordering(order, options = {}) - path = if group_order = order.group_order(current_user.ordergroup) + group_order = order.group_order(current_user.ordergroup) + path = if options[:show] and group_order + group_order_path(group_order) + elsif group_order edit_group_order_path(group_order, :order_id => order.id) else new_group_order_path(:order_id => order.id) end - link_to order.name, path, options - end - - def link_to_ordering_price(order, options = {}) - if group_order = order.group_order(current_user.ordergroup) - price = group_order.price - path = group_order_path(group_order) - else - price = 0 - path = new_group_order_path(:order_id => order.id) - end - link_to number_to_currency(price), path, options + options.delete(:show) + name = block_given? ? yield(order, group_order) : order.name + path ? link_to(name, path, options) : name end # Return css class names for order result table diff --git a/app/views/shared/_open_orders.html.haml b/app/views/shared/_open_orders.html.haml index b4ec76f0..e3fef854 100644 --- a/app/views/shared/_open_orders.html.haml +++ b/app/views/shared/_open_orders.html.haml @@ -20,7 +20,9 @@ - if group_order = order.group_order(ordergroup) - total += group_order.price %td= "#{group_order.updated_by.nick} (#{format_time(group_order.updated_on)})" - %td.numeric= link_to_ordering_price(order) + %td.numeric + = link_to_ordering(order, show: true) do + - number_to_currency(group_order.price) - else %td{:colspan => 2} - if total > 0