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) |