]> source.dussan.org Git - redmine.git/commitdiff
Add "<< me >>" option to user format issue custom fields (#31444).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 20 Jun 2019 09:05:36 +0000 (09:05 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 20 Jun 2019 09:05:36 +0000 (09:05 +0000)
Patch by Mizuki ISHIKAWA.

git-svn-id: http://svn.redmine.org/redmine/trunk@18288 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/field_format.rb
test/functional/context_menus_controller_test.rb
test/functional/issues_controller_test.rb
test/unit/lib/redmine/field_format/user_field_format_test.rb

index d11dbee7f7dbc312781d11edd7a3a9ba86caadb5..e7c3ffc2b3edcc2a45d26b38ccc683f27c3cf57d 100644 (file)
@@ -818,7 +818,10 @@ module Redmine
       field_attributes :user_role
 
       def possible_values_options(custom_field, object=nil)
-        possible_values_records(custom_field, object).map {|u| [u.name, u.id.to_s]}
+        users = possible_values_records(custom_field, object)
+        options = users.map {|u| [u.name, u.id.to_s]}
+        options = [["<< #{l(:label_me)} >>", User.current.id]] + options if users.include?(User.current)
+        options
       end
 
       def possible_values_records(custom_field, object=nil)
index 746f2f97f0c477ac342e2a0601ef7fc1a74ca32b..5f6d309b559659a9f891d6f7c3b5c34410fbd630 100644 (file)
@@ -190,7 +190,7 @@ class ContextMenusControllerTest < Redmine::ControllerTest
     assert_select "li.cf_#{field.id}" do
       assert_select 'a[href="#"]', :text => 'User'
       assert_select 'ul' do
-        assert_select 'a', Project.find(1).members.count + 1
+        assert_select 'a', Project.find(1).members.count + 2 # users + 'none' + 'me'
         assert_select 'a[href=?]', "/issues/bulk_update?ids%5B%5D=1&issue%5Bcustom_field_values%5D%5B#{field.id}%5D=2", :text => 'John Smith'
         assert_select 'a[href=?]', "/issues/bulk_update?ids%5B%5D=1&issue%5Bcustom_field_values%5D%5B#{field.id}%5D=__none__", :text => 'none'
       end
index 07ae9649cc14fee47bf89343e2f35d3af1d0e395..2945e8a0a3276327e38ca2edf2d434d751dbdddf 100644 (file)
@@ -2883,7 +2883,7 @@ class IssuesControllerTest < Redmine::ControllerTest
     assert_response :success
 
     assert_select 'select[name=?][multiple=multiple]', "issue[custom_field_values][#{field.id}][]" do
-      assert_select 'option', Project.find(1).users.count
+      assert_select 'option', Project.find(1).users.count + 1 # users + 'me'
       assert_select 'option[value="2"]', :text => 'John Smith'
     end
     assert_select 'input[name=?][type=hidden][value=?]', "issue[custom_field_values][#{field.id}][]", ''
@@ -5673,7 +5673,7 @@ class IssuesControllerTest < Redmine::ControllerTest
     assert_response :success
 
     assert_select 'select.user_cf[name=?]', "issue[custom_field_values][#{field.id}]" do
-      assert_select 'option', Project.find(1).users.count + 2 # "no change" + "none" options
+      assert_select 'option', Project.find(1).users.count + 3 # "no change" + "none" + "me" options
     end
   end
 
index 7fa53ad55a4fe1ab6c700df56e0f65fc6a0a466e..0843458904808df7e84c74ac0e15f64489c44b82 100644 (file)
@@ -81,6 +81,14 @@ class Redmine::UserFieldFormatTest < ActionView::TestCase
     assert_equal ['Dave Lopper'], field.possible_values_options(project).map(&:first)
   end
 
+  def test_possible_values_options_should_return_project_members_and_me_if_logged_in
+    User.current = User.find(2)
+    field = IssueCustomField.new(:field_format => 'user')
+    project = Project.find(1)
+
+    assert_equal ['<< me >>', 'Dave Lopper', 'John Smith'], field.possible_values_options(project).map(&:first)
+  end
+
   def test_value_from_keyword_should_return_user_id
     field = IssueCustomField.new(:field_format => 'user')
     project = Project.find(1)