Feature #16045 » previous-assignee-v3.patch
app/helpers/application_helper.rb | ||
---|---|---|
646 | 646 |
if collection.include?(User.current) |
647 | 647 |
s << content_tag('option', "<< #{l(:label_me)} >>", :value => User.current.id) |
648 | 648 |
end |
649 |
# do not add option in case of bulk and issue category edit |
|
650 |
unless @issue.nil? |
|
651 |
previous_assignee = @issue.previous_assigned_to |
|
652 |
s << content_tag('option', "<< #{l(:label_previous_assignee, name: previous_assignee.name)} >>", value: previous_assignee.id) if previous_assignee && previous_assignee != User.current && collection.include?(previous_assignee) |
|
653 |
end |
|
654 | ||
649 | 655 |
groups = +'' |
650 | 656 |
collection.sort.each do |element| |
651 | 657 |
if option_value_selected?(element, selected) || element.id.to_s == selected |
app/models/issue.rb | ||
---|---|---|
924 | 924 |
result |
925 | 925 |
end |
926 | 926 | |
927 |
# Returns the previous assignee from the issue history |
|
928 |
def previous_assigned_to |
|
929 |
journals.reverse_each do |j| |
|
930 |
previous_assignee_change = j.detail_for_attribute 'assigned_to_id' |
|
931 |
return User.find_by(id: previous_assignee_change.old_value.to_i) if previous_assignee_change && previous_assignee_change.old_value |
|
932 |
end |
|
933 |
nil |
|
934 |
end |
|
935 | ||
927 | 936 |
# Returns the initial status of the issue |
928 | 937 |
# Returns nil for a new issue |
929 | 938 |
def status_was |
config/locales/en.yml | ||
---|---|---|
898 | 898 |
label_optional: optional |
899 | 899 |
label_show_completed_versions: Show completed versions |
900 | 900 |
label_me: me |
901 |
label_previous_assignee: "Previous: %{name}" |
|
901 | 902 |
label_board: Forum |
902 | 903 |
label_board_new: New forum |
903 | 904 |
label_board_plural: Forums |
test/helpers/application_helper_test.rb | ||
---|---|---|
2035 | 2035 |
principals_options_for_select(users) |
2036 | 2036 |
end |
2037 | 2037 | |
2038 |
def test_principals_options_for_select_should_include_previous_assignee_option_when_previous_assignee_is_in_collection |
|
2039 |
set_language_if_valid 'en' |
|
2040 |
users = [User.find(2), User.find(3)] |
|
2041 |
@issue = Issue.generate!(assigned_to_id: 2) |
|
2042 |
@issue.init_journal(users.first, 'update') |
|
2043 |
@issue.assigned_to_id = 3 |
|
2044 |
@issue.save |
|
2045 | ||
2046 |
# when previous assignee is not in collection |
|
2047 |
assert_not_include 'Previous:', principals_options_for_select([User.find(3)]) |
|
2048 |
# when previous assignee is not in collection |
|
2049 |
assert_include '<option value="2"><< Previous: John Smith >></option>', principals_options_for_select(users) |
|
2050 |
end |
|
2051 | ||
2052 |
def test_principals_options_for_select_should_include_previous_assignee_option_when_previous_assignee_is_not_current_user |
|
2053 |
set_language_if_valid 'en' |
|
2054 |
users = [User.find(2), User.find(3)] |
|
2055 |
@issue = Issue.generate!(assigned_to_id: 2) |
|
2056 |
@issue.init_journal(users.first, 'update') |
|
2057 |
@issue.assigned_to_id = 3 |
|
2058 |
@issue.save |
|
2059 | ||
2060 |
# when previous_assignee is current user |
|
2061 |
User.current = User.find(2) |
|
2062 |
assert_not_include 'Previous:', principals_options_for_select(users) |
|
2063 |
# when previous_assignee is not current user |
|
2064 |
User.current = User.find(3) |
|
2065 |
assert_include '<option value="2"><< Previous: John Smith >></option>', principals_options_for_select(users) |
|
2066 |
end |
|
2067 | ||
2038 | 2068 |
def test_stylesheet_link_tag_should_pick_the_default_stylesheet |
2039 | 2069 |
assert_match 'href="/stylesheets/styles.css"', stylesheet_link_tag("styles") |
2040 | 2070 |
end |
test/unit/issue_test.rb | ||
---|---|---|
3210 | 3210 |
assert_equal was_closed_on, issue.closed_on |
3211 | 3211 |
end |
3212 | 3212 | |
3213 |
def test_previous_assigned_to |
|
3214 |
issue = Issue.generate!(assigned_to_id: 2) |
|
3215 |
issue.init_journal(User.find(2), 'update') |
|
3216 |
issue.assigned_to_id = 3 |
|
3217 |
issue.save |
|
3218 | ||
3219 |
assert_equal User.find(2), issue.previous_assigned_to |
|
3220 |
end |
|
3221 | ||
3222 |
def test_previous_assigned_to_should_return_nil |
|
3223 |
issue = Issue.generate!(assigned_to_id: 2) |
|
3224 |
issue.assigned_to_id = 3 |
|
3225 |
issue.save |
|
3226 | ||
3227 |
assert_equal 0, issue.journals.count |
|
3228 |
assert_nil issue.previous_assigned_to |
|
3229 |
end |
|
3230 | ||
3213 | 3231 |
def test_status_was_should_return_nil_for_new_issue |
3214 | 3232 |
issue = Issue.new |
3215 | 3233 |
assert_nil issue.status_was |