From 07c3c42ca847a37eb1a2725d4b3358ed8c518994 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Mon, 8 Aug 2011 14:12:06 -0700 Subject: [PATCH] [#6441] Refactor logic in view to helpers --- app/helpers/contracts_helper.rb | 10 ++++++++++ app/views/issues/_edit_deliverable.html.erb | 5 +---- init.rb | 3 +++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/helpers/contracts_helper.rb b/app/helpers/contracts_helper.rb index 9d93b38..961ce05 100644 --- a/app/helpers/contracts_helper.rb +++ b/app/helpers/contracts_helper.rb @@ -17,6 +17,16 @@ module ContractsHelper grouped_contracts["closed"] ||= [] grouped_contracts end + + def deliverable_options(project) + project.contracts.inject([]) do |data, contract| + data << [contract.name, deliverable_options_for_contract(contract)] + end + end + + def deliverable_options_for_contract(contract) + contract.deliverables.collect {|d| [d.title, d.id]} + end # Simple helper to show the values of a field on an object in a standard format # diff --git a/app/views/issues/_edit_deliverable.html.erb b/app/views/issues/_edit_deliverable.html.erb index 47fd42b..9daab6f 100644 --- a/app/views/issues/_edit_deliverable.html.erb +++ b/app/views/issues/_edit_deliverable.html.erb @@ -1,9 +1,6 @@ <% if project.module_enabled?(:contracts) && User.current.allowed_to?(:assign_deliverable_to_issue, project) %>

- <% options = project.contracts.inject([]) {|data, contract| - data << [contract.name, contract.deliverables.collect {|d| [d.title, d.id]} ] - } %> - <%= form.select(:deliverable_id, grouped_options_for_select(options, issue.deliverable_id), {:include_blank => true}) %> + <%= form.select(:deliverable_id, grouped_options_for_select(deliverable_options(project), issue.deliverable_id), {:include_blank => true}) %>

<% end %> diff --git a/init.rb b/init.rb index eb3c616..ea166d9 100644 --- a/init.rb +++ b/init.rb @@ -102,6 +102,9 @@ Dispatcher.to_prepare :redmine_contracts do unless Query.available_columns.collect(&:name).include?(:contract_name) Query.add_available_column(QueryColumn.new(:contract_name, :sortable => "#{Contract.table_name}.name", :groupable => 'contracts.name')) end + + require_dependency 'application_controller' + ApplicationController.send(:helper, :contracts) end require 'redmine_contracts/hooks/view_layouts_base_html_head_hook'