From 78a04c04bd6c3c6b6c0ebd2dbb7a038a14f11dee Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Wed, 23 Jun 2010 16:27:33 -0700 Subject: [PATCH] [#4181] List the deliverables with each contract. --- app/models/deliverable.rb | 4 ++++ app/models/fixed_deliverable.rb | 4 ++++ app/views/contracts/show.html.erb | 32 +++++++++++++++++++++++++ config/locales/en.yml | 3 +++ test/integration/contracts_show_test.rb | 18 +++++++++++++- 5 files changed, 60 insertions(+), 1 deletion(-) diff --git a/app/models/deliverable.rb b/app/models/deliverable.rb index 7cf35fb..ed0919d 100644 --- a/app/models/deliverable.rb +++ b/app/models/deliverable.rb @@ -8,4 +8,8 @@ class Deliverable < ActiveRecord::Base # Validations # Accessors + + def short_type + '' + end end diff --git a/app/models/fixed_deliverable.rb b/app/models/fixed_deliverable.rb index af69de7..708bdc4 100644 --- a/app/models/fixed_deliverable.rb +++ b/app/models/fixed_deliverable.rb @@ -6,4 +6,8 @@ class FixedDeliverable < Deliverable # Validations # Accessors + + def short_type + 'F' + end end diff --git a/app/views/contracts/show.html.erb b/app/views/contracts/show.html.erb index 7400e51..96c9f4c 100644 --- a/app/views/contracts/show.html.erb +++ b/app/views/contracts/show.html.erb @@ -17,3 +17,35 @@ <%= link_to(l(:button_update), edit_contract_path(@project, resource)) %> <%= link_to(l(:button_add_new), new_contract_deliverable_path(@project, resource), :id => 'new-deliverable') %> + +<% if resource.deliverables.empty? %> +

<%= l(:label_no_data) %>

+<% else %> + + + + + + <%# TODO: Status %> + + + + + + + <% resource.deliverables.each do |deliverable| %> + <% content_tag_for(:tr, deliverable) do %> + + + + <%# TODO: Status %> + + <%# TODO: deliverable calculations %> + + + + <% end %> + <% end %> + +
<%= l(:field_end_date) %> <%= l(:field_title) %><%= l(:field_manager) %><%= l(:field_labor) %><%= l(:field_overhead) %><%= l(:field_fixed) %>
<%= h format_date(deliverable.end_date) %><%= h deliverable.short_type %><%= h deliverable.title %><%= h deliverable.manager.try(:name) %>---------
+<% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index ad625da..3eb61da 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -23,4 +23,7 @@ en: button_add_new: Add New text_new_deliverable: New Deliverable field_manager: Manager + field_labor: Labor + field_overhead: Overhead + field_fixed: Fixed diff --git a/test/integration/contracts_show_test.rb b/test/integration/contracts_show_test.rb index a915c1f..8880c31 100644 --- a/test/integration/contracts_show_test.rb +++ b/test/integration/contracts_show_test.rb @@ -32,5 +32,21 @@ class ContractsShowTest < ActionController::IntegrationTest assert_equal "/projects/main/contracts/#{@contract.id}/deliverables/new", current_url end - should "show a list of deliverables for the contract" + should "show a list of deliverables for the contract" do + @manager = User.generate! + + @deliverable1 = FixedDeliverable.generate!(:contract => @contract, :manager => @manager) + @deliverable2 = FixedDeliverable.generate!(:contract => @contract, :manager => @manager) + visit_contract_page(@contract) + + assert_select "table#deliverables" do + [@deliverable1, @deliverable2].each do |deliverable| + assert_select "td.end-date", :text => /#{format_date(deliverable.end_date)}/ + assert_select "td.type", :text => "F" + assert_select "td.title", :text => /#{deliverable.title}/ + assert_select "td.manager", :text => /#{deliverable.manager.name}/ + end + end + + end end