diff options
author | Marius Balteanu <marius.balteanu@zitec.com> | 2024-04-28 07:26:29 +0000 |
---|---|---|
committer | Marius Balteanu <marius.balteanu@zitec.com> | 2024-04-28 07:26:29 +0000 |
commit | 61c7d539dccc3bec3da4d365443fb780bffd8ef0 (patch) | |
tree | d891c694b86e76ead3a95eb56ad37b4b633994f2 /app/models | |
parent | ab2f00f2ebf34931f6fa9e67751535bb6cb0b728 (diff) | |
download | redmine-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.rb | 4 | ||||
-rw-r--r-- | app/models/query.rb | 8 |
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 |