[#6441] Block creating deliverables on closed or locked contracts
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user