]> source.dussan.org Git - redmine.git/commitdiff
Set default assignee before validation (#26072).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 6 Jun 2017 21:11:37 +0000 (21:11 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 6 Jun 2017 21:11:37 +0000 (21:11 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@16619 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/issue.rb
test/unit/issue_test.rb

index d5a43ed1811f57c803c07f50d387f5be68c3b68c..6a072efad84cf6fbc297a5f21bec278f20f0cefc 100644 (file)
@@ -105,8 +105,8 @@ class Issue < ActiveRecord::Base
     end
   }
 
+  before_validation :default_assign, on: :create
   before_validation :clear_disabled_fields
-  before_create :default_assign
   before_save :close_duplicates, :update_done_ratio_from_issue_status,
               :force_updated_on_change, :update_closed_on, :set_assigned_to_was
   after_save {|issue| issue.send :after_project_change if !issue.id_changed? && issue.project_id_changed?}
index f8fde822c83e73ae9b06894d593c76727df4dc89..30afaf87bab1393855e80c7096f8bb8dfd8e6aea 100644 (file)
@@ -625,6 +625,18 @@ class IssueTest < ActiveSupport::TestCase
     assert_equal user, issue.assigned_to
   end
 
+  def test_default_assigned_to_with_required_assignee_should_validate
+    category = IssueCategory.create!(:project_id => 1, :name => 'With default assignee', :assigned_to_id => 3)
+    Issue.any_instance.stubs(:required_attribute_names).returns(['assigned_to_id'])
+
+    issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Default')
+    assert !issue.save
+    assert issue.errors['assigned_to_id'].present?
+
+    issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Default', :category_id => category.id)
+    assert_save issue
+  end
+
   def test_should_not_update_custom_fields_on_changing_tracker_with_different_custom_fields
     issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1,
                           :status_id => 1, :subject => 'Test',