Feature #9445 » 0001-Add-Issue-custom-fields-of-User-format-to-the-cross-.patch
| app/models/issue_query.rb | ||
|---|---|---|
| 233 | 233 |
:values => subprojects.collect{|s| [s.name, s.id.to_s] }
|
| 234 | 234 |
end |
| 235 | 235 | |
| 236 |
add_custom_fields_filters(issue_custom_fields) |
|
| 236 |
add_custom_fields_filters(issue_custom_fields, nil, users)
|
|
| 237 | 237 | |
| 238 | 238 |
add_associations_custom_fields_filters :project, :author, :assigned_to, :fixed_version |
| 239 | 239 | |
| app/models/query.rb | ||
|---|---|---|
| 780 | 780 |
end |
| 781 | 781 | |
| 782 | 782 |
# Adds a filter for the given custom field |
| 783 |
def add_custom_field_filter(field, assoc=nil) |
|
| 783 |
def add_custom_field_filter(field, assoc=nil, valid_users=nil)
|
|
| 784 | 784 |
options = field.format.query_filter_options(field, self) |
| 785 | 785 |
if field.format.target_class && field.format.target_class <= User |
| 786 | 786 |
if options[:values].is_a?(Array) && User.current.logged? |
| 787 | 787 |
options[:values].unshift ["<< #{l(:label_me)} >>", "me"]
|
| 788 | 788 |
end |
| 789 |
if options[:values].is_a?(Array) && project.nil? && !valid_users.nil? |
|
| 790 |
options[:values] += valid_users.collect {|u| [u.name, u.id.to_s]}
|
|
| 791 |
end |
|
| 789 | 792 |
end |
| 790 | 793 | |
| 791 | 794 |
filter_id = "cf_#{field.id}"
|
| ... | ... | |
| 801 | 804 |
end |
| 802 | 805 | |
| 803 | 806 |
# Adds filters for the given custom fields scope |
| 804 |
def add_custom_fields_filters(scope, assoc=nil) |
|
| 807 |
def add_custom_fields_filters(scope, assoc=nil, valid_users=nil)
|
|
| 805 | 808 |
scope.visible.where(:is_filter => true).sorted.each do |field| |
| 806 |
add_custom_field_filter(field, assoc) |
|
| 809 |
add_custom_field_filter(field, assoc, valid_users)
|
|
| 807 | 810 |
end |
| 808 | 811 |
end |
| 809 | 812 | |