summaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorMarius Balteanu <marius.balteanu@zitec.com>2024-04-28 07:26:29 +0000
committerMarius Balteanu <marius.balteanu@zitec.com>2024-04-28 07:26:29 +0000
commit61c7d539dccc3bec3da4d365443fb780bffd8ef0 (patch)
treed891c694b86e76ead3a95eb56ad37b4b633994f2 /app/models
parentab2f00f2ebf34931f6fa9e67751535bb6cb0b728 (diff)
downloadredmine-61c7d539dccc3bec3da4d365443fb780bffd8ef0.tar.gz
redmine-61c7d539dccc3bec3da4d365443fb780bffd8ef0.zip
Adds Watcher list to the list of available query columns for issues (#29894).
Patch by Felix Schäfer (@felix). git-svn-id: https://svn.redmine.org/redmine/trunk@22793 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models')
-rw-r--r--app/models/issue_query.rb4
-rw-r--r--app/models/query.rb8
2 files changed, 12 insertions, 0 deletions
diff --git a/app/models/issue_query.rb b/app/models/issue_query.rb
index 97df44b02..91678874e 100644
--- a/app/models/issue_query.rb
+++ b/app/models/issue_query.rb
@@ -40,6 +40,7 @@ class IssueQuery < Query
QueryColumn.new(:assigned_to,
:sortable => lambda {User.fields_for_order_statement},
:groupable => true),
+ WatcherQueryColumn.new(:watcher_users, :caption => :label_issue_watchers),
TimestampQueryColumn.new(:updated_on, :sortable => "#{Issue.table_name}.updated_on",
:default_order => 'desc', :groupable => true),
QueryColumn.new(:category, :sortable => "#{IssueCategory.table_name}.name", :groupable => true),
@@ -404,6 +405,9 @@ class IssueQuery < Query
if has_custom_field_column?
scope = scope.preload(:custom_values)
end
+ if has_column?(:watcher_users)
+ scope = scope.preload(:watcher_users)
+ end
issues = scope.to_a
diff --git a/app/models/query.rb b/app/models/query.rb
index 2bcc1b129..90970c96e 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -104,6 +104,14 @@ class TimestampQueryColumn < QueryColumn
end
end
+class WatcherQueryColumn < QueryColumn
+ def value_object(object)
+ return nil unless User.current.allowed_to?(:"view_#{object.class.name.underscore}_watchers", object.try(:project))
+
+ super
+ end
+end
+
class QueryAssociationColumn < QueryColumn
def initialize(association, attribute, options={})
@association = association