Defect #26023 » 26023.patch
| app/models/issue_category.rb | ||
|---|---|---|
| 29 | 29 |
safe_attributes 'name', 'assigned_to_id' |
| 30 | 30 | |
| 31 | 31 |
scope :named, lambda {|arg| where("LOWER(#{table_name}.name) = LOWER(?)", arg.to_s.strip)}
|
| 32 |
scope :visible, lambda {|*args|
|
|
| 33 |
joins(:project). |
|
| 34 |
where(Project.allowed_to_condition(args.first || User.current, :view_issues)) |
|
| 35 |
} |
|
| 32 | 36 | |
| 33 | 37 |
alias :destroy_without_reassign :destroy |
| 34 | 38 | |
| app/models/issue_query.rb | ||
|---|---|---|
| 124 | 124 | |
| 125 | 125 |
add_available_filter "category_id", |
| 126 | 126 |
:type => :list_optional, |
| 127 |
:values => lambda { project.issue_categories.collect{|s| [s.name, s.id.to_s] } } if project
|
|
| 127 |
:values => lambda { issue_category_values }
|
|
| 128 | 128 | |
| 129 | 129 |
add_available_filter "subject", :type => :text |
| 130 | 130 |
add_available_filter "description", :type => :text |
| app/models/project.rb | ||
|---|---|---|
| 323 | 323 |
@users = nil |
| 324 | 324 |
@shared_versions = nil |
| 325 | 325 |
@rolled_up_versions = nil |
| 326 |
@rolled_up_issue_categories = nil |
|
| 326 | 327 |
@rolled_up_trackers = nil |
| 327 | 328 |
@rolled_up_custom_fields = nil |
| 328 | 329 |
@all_issue_custom_fields = nil |
| ... | ... | |
| 471 | 472 |
where("#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status <> ?", lft, rgt, STATUS_ARCHIVED)
|
| 472 | 473 |
end |
| 473 | 474 | |
| 475 |
def rolled_up_issue_categories |
|
| 476 |
@rolled_up_issue_categories ||= |
|
| 477 |
IssueCategory. |
|
| 478 |
joins(:project). |
|
| 479 |
where("#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status <> ?", lft, rgt, STATUS_ARCHIVED)
|
|
| 480 |
end |
|
| 481 | ||
| 474 | 482 |
# Returns a scope of the Versions used by the project |
| 475 | 483 |
def shared_versions |
| 476 | 484 |
if new_record? |
| app/models/query.rb | ||
|---|---|---|
| 551 | 551 |
Version.sort_by_status(versions).collect{|s| ["#{s.project.name} - #{s.name}", s.id.to_s, l("version_status_#{s.status}")] }
|
| 552 | 552 |
end |
| 553 | 553 | |
| 554 |
def issue_category_values |
|
| 555 |
categories = [] |
|
| 556 |
if project |
|
| 557 |
categories = project.rolled_up_issue_categories.to_a |
|
| 558 |
else |
|
| 559 |
categories = IssueCategory.visible.to_a |
|
| 560 |
end |
|
| 561 |
categories.collect {|c| [c.name, c.id.to_s] }
|
|
| 562 |
end |
|
| 563 | ||
| 554 | 564 |
# Returns a scope of issue custom fields that are available as columns or filters |
| 555 | 565 |
def issue_custom_fields |
| 556 | 566 |
if project |