[#6441] Block creating deliverables on closed or locked contracts

This commit is contained in:
Eric Davis
2011-08-10 15:53:36 -07:00
parent 256325a39d
commit bf1339fc61
6 changed files with 50 additions and 8 deletions
+16 -3
View File
@@ -21,7 +21,7 @@ class Deliverable < ActiveRecord::Base
validates_presence_of :manager
validates_inclusion_of :status, :in => ["open","locked","closed"], :allow_blank => true, :allow_nil => true
validate_on_update :validate_status_changes
validate_on_update :validate_contract_status
validate :validate_contract_status
# Accessors
include DollarizedAttribute
@@ -117,8 +117,21 @@ class Deliverable < ActiveRecord::Base
return if contract_open?
return if change_to_status_only?
errors.add_to_base(:cant_update_locked_contract) if contract_locked?
errors.add_to_base(:cant_update_closed_contract) if contract_closed?
if contract_locked?
if new_record?
errors.add_to_base(:cant_create_deliverable_on_locked_contract)
else
errors.add_to_base(:cant_update_locked_contract)
end
end
if contract_closed?
if new_record?
errors.add_to_base(:cant_create_deliverable_on_closed_contract)
else
errors.add_to_base(:cant_update_closed_contract)
end
end
end
# No operation method, useful to clean up logic with an optional message
+1 -1
View File
@@ -102,7 +102,7 @@
<div class="actions">
<a href="#TODO-release-2"><%= release(2, "CSV") %></a>
<a href="#TODO-release?"><%= release(5, "View All/Pagination") %></a>
<%= link_to(l(:button_add_new), new_contract_deliverable_path(@project, resource), :id => 'new-deliverable') %>
<%= link_to(l(:button_add_new), new_contract_deliverable_path(@project, resource), :id => 'new-deliverable') if resource.open? %>
</div>
<div class="clear"></div>