Check for a valid time entry if comments have been entered when updating an issue (#7581).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5110 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
2c996725f0
commit
1bf4f52de5
|
@ -536,7 +536,7 @@ class Issue < ActiveRecord::Base
|
||||||
# Returns false if save fails
|
# Returns false if save fails
|
||||||
def save_issue_with_child_records(params, existing_time_entry=nil)
|
def save_issue_with_child_records(params, existing_time_entry=nil)
|
||||||
Issue.transaction do
|
Issue.transaction do
|
||||||
if params[:time_entry] && params[:time_entry][:hours].present? && User.current.allowed_to?(:log_time, project)
|
if params[:time_entry] && (params[:time_entry][:hours].present? || params[:time_entry][:comments].present?) && User.current.allowed_to?(:log_time, project)
|
||||||
@time_entry = existing_time_entry || TimeEntry.new
|
@time_entry = existing_time_entry || TimeEntry.new
|
||||||
@time_entry.project = project
|
@time_entry.project = project
|
||||||
@time_entry.issue = self
|
@time_entry.issue = self
|
||||||
|
|
|
@ -1002,7 +1002,7 @@ class IssuesControllerTest < ActionController::TestCase
|
||||||
assert_equal 1, ActionMailer::Base.deliveries.size
|
assert_equal 1, ActionMailer::Base.deliveries.size
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_put_update_with_invalid_spent_time
|
def test_put_update_with_invalid_spent_time_hours_only
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
notes = 'Note added by IssuesControllerTest#test_post_edit_with_invalid_spent_time'
|
notes = 'Note added by IssuesControllerTest#test_post_edit_with_invalid_spent_time'
|
||||||
|
|
||||||
|
@ -1015,11 +1015,30 @@ class IssuesControllerTest < ActionController::TestCase
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_template 'edit'
|
assert_template 'edit'
|
||||||
|
|
||||||
assert_tag :textarea, :attributes => { :name => 'notes' },
|
assert_error_tag :descendant => {:content => /Activity can't be blank/}
|
||||||
:content => notes
|
assert_tag :textarea, :attributes => { :name => 'notes' }, :content => notes
|
||||||
assert_tag :input, :attributes => { :name => 'time_entry[hours]', :value => "2z" }
|
assert_tag :input, :attributes => { :name => 'time_entry[hours]', :value => "2z" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_put_update_with_invalid_spent_time_comments_only
|
||||||
|
@request.session[:user_id] = 2
|
||||||
|
notes = 'Note added by IssuesControllerTest#test_post_edit_with_invalid_spent_time'
|
||||||
|
|
||||||
|
assert_no_difference('Journal.count') do
|
||||||
|
put :update,
|
||||||
|
:id => 1,
|
||||||
|
:notes => notes,
|
||||||
|
:time_entry => {"comments"=>"this is my comment", "activity_id"=>"", "hours"=>""}
|
||||||
|
end
|
||||||
|
assert_response :success
|
||||||
|
assert_template 'edit'
|
||||||
|
|
||||||
|
assert_error_tag :descendant => {:content => /Activity can't be blank/}
|
||||||
|
assert_error_tag :descendant => {:content => /Hours can't be blank/}
|
||||||
|
assert_tag :textarea, :attributes => { :name => 'notes' }, :content => notes
|
||||||
|
assert_tag :input, :attributes => { :name => 'time_entry[comments]', :value => "this is my comment" }
|
||||||
|
end
|
||||||
|
|
||||||
def test_put_update_should_allow_fixed_version_to_be_set_to_a_subproject
|
def test_put_update_should_allow_fixed_version_to_be_set_to_a_subproject
|
||||||
issue = Issue.find(2)
|
issue = Issue.find(2)
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
|
|
Loading…
Reference in New Issue