Fixed issue status validation (#8938)

This commit is contained in:
Anton Argirov 2012-10-05 16:11:37 +07:00
parent d9a6f1feae
commit d7f38170cc

View File

@ -13,15 +13,15 @@ module RedmineCustomWorkflows
module InstanceMethods module InstanceMethods
def validate_status def validate_status
return true unless @extra_validation return true unless @saved_attributes && @saved_attributes['status_id'] != status_id &&
if status_id_was != status_id && !new_statuses_allowed_to(User.current, new_record?).collect(&:id).include?(status_id) !new_statuses_allowed_to(User.current, new_record?).collect(&:id).include?(status_id)
status_was = IssueStatus.find_by_id(status_id_was)
status_new = IssueStatus.find_by_id(status_id)
errors.add :status, :new_status_invalid, status_was = IssueStatus.find_by_id(status_id_was)
:old_status => status_was && status_was.name, status_new = IssueStatus.find_by_id(status_id)
:new_status => status_new && status_new.name
end errors.add :status, :new_status_invalid,
:old_status => status_was && status_was.name,
:new_status => status_new && status_new.name
end end
def run_custom_workflows(on) def run_custom_workflows(on)
@ -47,10 +47,9 @@ module RedmineCustomWorkflows
end end
def before_save_custom_workflows def before_save_custom_workflows
saved_attributes = attributes.dup @saved_attributes = attributes.dup
@extra_validation = true result = run_custom_workflows(:before_save) && (@saved_attributes == attributes || valid?)
result = run_custom_workflows(:before_save) && (saved_attributes == attributes || valid?) @saved_attributes = nil
@extra_validation = false
result result
end end