From 8160f2addb05c662c5a9f20d7dfdf66e0e41534b Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Wed, 21 Oct 2015 17:00:14 +0000 Subject: [PATCH] Adds a scope to get issues assigned to a user. git-svn-id: http://svn.redmine.org/redmine/trunk@14720 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/helpers/my_helper.rb | 2 +- app/models/issue.rb | 7 +++++++ app/views/users/show.html.erb | 2 +- test/unit/issue_test.rb | 16 ++++++++++++++++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/app/helpers/my_helper.rb b/app/helpers/my_helper.rb index acb9d836e..a559b9893 100644 --- a/app/helpers/my_helper.rb +++ b/app/helpers/my_helper.rb @@ -33,7 +33,7 @@ module MyHelper def issuesassignedtome_items Issue.visible.open. - where(:assigned_to_id => ([User.current.id] + User.current.group_ids)). + assigned_to(User.current). limit(10). includes(:status, :project, :tracker, :priority). references(:status, :project, :tracker, :priority). diff --git a/app/models/issue.rb b/app/models/issue.rb index 3d57c722c..d07041ff1 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -95,6 +95,13 @@ class Issue < ActiveRecord::Base ids = [versions].flatten.compact.map {|v| v.is_a?(Version) ? v.id : v} ids.any? ? where(:fixed_version_id => ids) : where('1=0') } + scope :assigned_to, lambda {|arg| + arg = Array(arg).uniq + ids = arg.map {|p| p.is_a?(Principal) ? p.id : p} + ids += arg.select {|p| p.is_a?(User)}.map(&:group_ids).flatten.uniq + ids.compact! + ids.any? ? where(:assigned_to_id => ids) : none + } before_validation :clear_disabled_fields before_create :default_assign diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index c5180885f..a4d0c4b5b 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -27,7 +27,7 @@