Defect #21504 » 21504-recalculate_issue_priority_position_name_on_active_change.patch
| app/models/issue.rb | ||
|---|---|---|
| 810 | 810 | # Users the issue can be assigned to | 
| 811 | 811 | def assignable_users | 
| 812 | 812 | users = project.assignable_users.to_a | 
| 813 |     users << author if author | |
| 813 |     users << author if (author && !author.anonymous?) | |
| 814 | 814 | users << assigned_to if assigned_to | 
| 815 | 815 | users.uniq.sort | 
| 816 | 816 | end | 
| app/models/issue_priority.rb | ||
|---|---|---|
| 19 | 19 | has_many :issues, :foreign_key => 'priority_id' | 
| 20 | 20 | |
| 21 | 21 |   after_destroy {|priority| priority.class.compute_position_names} | 
| 22 |   after_save {|priority| priority.class.compute_position_names if priority.position_changed? && priority.position} | |
| 22 |   after_save {|priority| priority.class.compute_position_names if (priority.position_changed? && priority.position) || priority.active_changed?} | |
| 23 | 23 | |
| 24 | 24 | OptionName = :enumeration_issue_priorities | 
| 25 | 25 | |
| test/unit/issue_priority_test.rb | ||
|---|---|---|
| 99 | 99 | assert_equal %w(lowest default high4 high3 high2 highest), IssuePriority.active.to_a.sort.map(&:position_name) | 
| 100 | 100 | end | 
| 101 | 101 | |
| 102 | def test_moving_a_priority_should_update_position_names | |
| 103 | prio = IssuePriority.first | |
| 104 | prio.move_to = 'lowest' | |
| 105 | prio.reload | |
| 106 | assert_equal 'highest', prio.position_name | |
| 107 | end | |
| 108 | ||
| 109 | def test_deactivating_a_priority_should_update_position_names | |
| 110 | prio = IssuePriority.active.order(:position).last | |
| 111 | prio.active = false | |
| 112 | prio.save | |
| 113 | assert_equal 'highest', IssuePriority.active.order(:position).last.position_name | |
| 114 | end | |
| 115 | ||
| 102 | 116 | def test_destroying_a_priority_should_update_position_names | 
| 103 | 117 |     IssuePriority.find_by_position_name('highest').destroy | 
| 104 | 118 | assert_equal %w(lowest default high2 highest), IssuePriority.active.to_a.sort.map(&:position_name) |