Building up the JavaScript details. #1190
This commit is contained in:
@@ -9,4 +9,10 @@ module DeliverablesHelper
|
|||||||
)
|
)
|
||||||
) + observe_field('deliverable_' + field.to_s, :function => "new Budget.updateAmounts();")
|
) + observe_field('deliverable_' + field.to_s, :function => "new Budget.updateAmounts();")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def paragraph_with_data(label, data)
|
||||||
|
content_tag(:p,
|
||||||
|
content_tag(:span, label) +
|
||||||
|
h(data))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -75,4 +75,25 @@ class Deliverable < ActiveRecord::Base
|
|||||||
write_attribute(:profit, v.gsub(/[$, ]/,''))
|
write_attribute(:profit, v.gsub(/[$, ]/,''))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def budget_remaining
|
||||||
|
return self.budget - self.spent
|
||||||
|
end
|
||||||
|
|
||||||
|
def hours_used
|
||||||
|
0
|
||||||
|
end
|
||||||
|
|
||||||
|
def left
|
||||||
|
return self.budget - self.spent
|
||||||
|
end
|
||||||
|
|
||||||
|
def overruns
|
||||||
|
if self.left >= 0
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return self.left * -1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -16,5 +16,11 @@ class HourlyDeliverable < Deliverable
|
|||||||
|
|
||||||
return total
|
return total
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def hours_used
|
||||||
|
return 0 unless self.issues.size > 0
|
||||||
|
return self.issues.collect(&:time_entries).flatten.collect(&:hours).sum
|
||||||
|
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<tr id="deliverable-<%= deliverable.id %>" class="deliverable <%= cycle('odd', 'even') %>">
|
<% css = cycle('odd','even') %>
|
||||||
|
<tr id="deliverable-<%= deliverable.id %>" class="deliverable <%= css %>">
|
||||||
<%= content_tag(:td, deliverable.id) %>
|
<%= content_tag(:td, deliverable.id) %>
|
||||||
<%= content_tag(:td, deliverable.score) %>
|
<%= content_tag(:td, deliverable.score) %>
|
||||||
<%= content_tag(:td, deliverable.subject) %>
|
<%= content_tag(:td, deliverable.subject) %>
|
||||||
@@ -6,4 +7,27 @@
|
|||||||
<%= content_tag(:td, number_to_currency(deliverable.spent)) %>
|
<%= content_tag(:td, number_to_currency(deliverable.spent)) %>
|
||||||
<%= content_tag(:td, format_date(deliverable.due_date)) %>
|
<%= content_tag(:td, format_date(deliverable.due_date)) %>
|
||||||
<%= content_tag(:td, progress_bar(deliverable.progress, :width => '100%')) %>
|
<%= content_tag(:td, progress_bar(deliverable.progress, :width => '100%')) %>
|
||||||
|
<%= content_tag(:td, link_to_function("Details", "$('deliverable-details-#{deliverable.id}').toggle();")) %>
|
||||||
|
</tr>
|
||||||
|
<tr id="deliverable-details-<%= deliverable.id %>" class="deliverable deliverable-details <%= css %>" style="display:none;">
|
||||||
|
<%# TODO: link to issues %>
|
||||||
|
<%# TODO: link to edit %>
|
||||||
|
<%= content_tag(
|
||||||
|
:td,
|
||||||
|
"<dl>" +
|
||||||
|
paragraph_with_data("Deliverable Budget: ", number_to_currency(deliverable.budget)) +
|
||||||
|
paragraph_with_data("Budget Spent: ", number_to_currency(deliverable.spent)) +
|
||||||
|
paragraph_with_data("Budget Remaining: ", number_to_currency(deliverable.budget_remaining)) +
|
||||||
|
paragraph_with_data("Hours Used: ", deliverable.hours_used) +
|
||||||
|
paragraph_with_data("Hours Estimated: ", deliverable.total_hours) +
|
||||||
|
paragraph_with_data("Progress: ", deliverable.progress) +
|
||||||
|
paragraph_with_data("Score ", deliverable.score) +
|
||||||
|
paragraph_with_data("Overruns ", number_to_currency(deliverable.overruns)) +
|
||||||
|
paragraph_with_data("TODO: Overall project %", nil) +
|
||||||
|
paragraph_with_data("Profit: ", number_to_currency(deliverable.profit)) +
|
||||||
|
"</dl>",
|
||||||
|
:colspan => 4) %>
|
||||||
|
|
||||||
|
<%= content_tag(
|
||||||
|
:td, "TODO", :colspan => 4) %>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
<%= content_tag('th', "Spent") %>
|
<%= content_tag('th', "Spent") %>
|
||||||
<%= sort_header_tag("#{Deliverable.table_name}.due_date", :caption => 'Due') %>
|
<%= sort_header_tag("#{Deliverable.table_name}.due_date", :caption => 'Due') %>
|
||||||
<%= content_tag('th', "Progress") %>
|
<%= content_tag('th', "Progress") %>
|
||||||
|
<%= content_tag('th', "Actions") %>
|
||||||
</tr></thead>
|
</tr></thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<% deliverables.each do |deliverable| -%>
|
<% deliverables.each do |deliverable| -%>
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ tr.deliverable td.subject, tr.deliverable td.category { white-space: normal; }
|
|||||||
tr.deliverable td.subject { text-align: left; }
|
tr.deliverable td.subject { text-align: left; }
|
||||||
tr.deliverable td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
|
tr.deliverable td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
|
||||||
|
|
||||||
|
tr.deliverable-details p { text-align:left; }
|
||||||
|
tr.deliverable-details span { font-weight:bold; }
|
||||||
|
|
||||||
#deliverable-form .splitcontentleft { width: 62% }
|
#deliverable-form .splitcontentleft { width: 62% }
|
||||||
#deliverable-form .splitcontentright { width: 37% }
|
#deliverable-form .splitcontentright { width: 37% }
|
||||||
#deliverable-form .splitcontentright p { padding-right: 30px; }
|
#deliverable-form .splitcontentright p { padding-right: 30px; }
|
||||||
|
|||||||
Reference in New Issue
Block a user