3e561736b2
By caching the number of personal SSH keys we reduce the number of queries necessary on pages such as ProjectsController#show (which can end up querying this data multiple times). The cache is refreshed/flushed whenever an SSH key is added, removed, or when a user is removed.
15 lines
453 B
Ruby
15 lines
453 B
Ruby
module Projects
|
|
# Service class for counting and caching the number of open issues of a
|
|
# project.
|
|
class OpenIssuesCountService < Projects::CountService
|
|
def relation_for_count
|
|
# We don't include confidential issues in this number since this would
|
|
# expose the number of confidential issues to non project members.
|
|
@project.issues.opened.public_only
|
|
end
|
|
|
|
def cache_key_name
|
|
'open_issues_count'
|
|
end
|
|
end
|
|
end
|