Browse Source

Option to filter after my bookmarked projects (#32302, #29482, #31355).

Patch by Marius BALTEANU.


git-svn-id: http://svn.redmine.org/redmine/trunk@18842 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/4.1.0
Go MAEDA 4 years ago
parent
commit
b1f1108606

+ 6
- 2
app/models/query.rb View File



def project_values def project_values
project_values = [] project_values = []
if User.current.logged? && User.current.memberships.any?
project_values << ["<< #{l(:label_my_projects).downcase} >>", "mine"]
if User.current.logged?
project_values << ["<< #{l(:label_my_projects).downcase} >>", "mine"] if User.current.memberships.any?
project_values << ["<< #{l(:label_my_bookmarks).downcase} >>", "bookmarks"] if User.current.bookmarked_project_ids.any?
end end
project_values += all_projects_values project_values += all_projects_values
project_values project_values
if v.delete('mine') if v.delete('mine')
v += User.current.memberships.map(&:project_id).map(&:to_s) v += User.current.memberships.map(&:project_id).map(&:to_s)
end end
if v.delete('bookmarks')
v += User.current.bookmarked_project_ids
end
end end


if field =~ /^cf_(\d+)\.cf_(\d+)$/ if field =~ /^cf_(\d+)\.cf_(\d+)$/

+ 7
- 0
app/models/user.rb View File

end end
end end


def bookmarked_project_ids
project_ids = []
bookmarked_project_ids = self.pref[:bookmarked_project_ids]
project_ids = bookmarked_project_ids.split(',') unless bookmarked_project_ids.nil?
project_ids.map(&:to_i)
end

protected protected


def validate_password_length def validate_password_length

+ 1
- 0
config/locales/en.yml View File

label_display_type: Display results as label_display_type: Display results as
label_display_type_list: List label_display_type_list: List
label_display_type_board: Board label_display_type_board: Board
label_my_bookmarks: My bookmarks


button_login: Login button_login: Login
button_submit: Submit button_submit: Submit

+ 1
- 0
test/fixtures/user_preferences.yml View File

- issuesassignedtome - issuesassignedtome
top: top:
- calendar - calendar
:bookmarked_project_ids: "1,5"


id: 1 id: 1
user_id: 1 user_id: 1

+ 21
- 0
test/unit/query_test.rb View File

assert_nil result.detect {|issue| !User.current.member_of?(issue.project)} assert_nil result.detect {|issue| !User.current.member_of?(issue.project)}
end end


def test_filter_my_bookmarks
User.current = User.find(1)
query = ProjectQuery.new(:name => '_')
filter = query.available_filters['id']
assert_not_nil filter
assert_include 'bookmarks', filter[:values].map{|v| v[1]}

query.filters = { 'id' => {:operator => '=', :values => ['bookmarks']}}
result = query.results_scope

assert_equal [1,5], result.map(&:id).sort
end

def test_filter_my_bookmarks_for_user_without_bookmarked_projects
User.current = User.find(2)
query = ProjectQuery.new(:name => '_')
filter = query.available_filters['id']

assert_not_include 'bookmarks', filter[:values].map{|v| v[1]}
end

def test_filter_watched_issues def test_filter_watched_issues
User.current = User.find(1) User.current = User.find(1)
query = IssueQuery.new(:name => '_', :filters => { 'watcher_id' => {:operator => '=', :values => ['me']}}) query = IssueQuery.new(:name => '_', :filters => { 'watcher_id' => {:operator => '=', :values => ['me']}})

+ 7
- 0
test/unit/user_test.rb View File

assert_equal user, User.try_to_login(user.login, "unsalted") assert_equal user, User.try_to_login(user.login, "unsalted")
end end


def test_bookmarked_project_ids
# User with bookmarked projects
assert_equal [1, 5], User.find(1).bookmarked_project_ids
# User without bookmarked projects
assert_equal [], User.find(2).bookmarked_project_ids
end

if Object.const_defined?(:OpenID) if Object.const_defined?(:OpenID)
def test_setting_identity_url def test_setting_identity_url
normalized_open_id_url = 'http://example.com/' normalized_open_id_url = 'http://example.com/'

Loading…
Cancel
Save