summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2013-09-13 17:41:54 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2013-09-13 17:41:54 +0000
commit59b935aa469c44d7c8c00f199af31168ce4af4c7 (patch)
treea2fd4aa092174dcee31088d96872765899f10ab4 /app
parentae7304dd005ab50c2934a9318ed40c88ee0f77d3 (diff)
downloadredmine-59b935aa469c44d7c8c00f199af31168ce4af4c7.tar.gz
redmine-59b935aa469c44d7c8c00f199af31168ce4af4c7.zip
Filters show issues with unused custom fields (#13537).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12133 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/models/issue_custom_field.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/issue_custom_field.rb b/app/models/issue_custom_field.rb
index e811ccaae..513b96a54 100644
--- a/app/models/issue_custom_field.rb
+++ b/app/models/issue_custom_field.rb
@@ -28,6 +28,15 @@ class IssueCustomField < CustomField
super || (roles & user.roles_for_project(project)).present?
end
+ def visibility_by_project_condition(*args)
+ sql = super
+ additional_sql = "#{Issue.table_name}.tracker_id IN (SELECT tracker_id FROM #{table_name_prefix}custom_fields_trackers#{table_name_suffix} WHERE custom_field_id = #{id})"
+ unless is_for_all?
+ additional_sql << " AND #{Issue.table_name}.project_id IN (SELECT project_id FROM #{table_name_prefix}custom_fields_projects#{table_name_suffix} WHERE custom_field_id = #{id})"
+ end
+ "((#{sql}) AND (#{additional_sql}))"
+ end
+
def validate_custom_field
super
errors.add(:base, l(:label_role_plural) + ' ' + l('activerecord.errors.messages.blank')) unless visible? || roles.present?