Commit 094e5efb authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge pull request #6992 from skv-headless/project_commits_sql_optimization

notes count in 1 query  for mr and commits
parents aadef92f 20b21027
...@@ -13,6 +13,8 @@ class Projects::CommitsController < Projects::ApplicationController ...@@ -13,6 +13,8 @@ class Projects::CommitsController < Projects::ApplicationController
@limit, @offset = (params[:limit] || 40), (params[:offset] || 0) @limit, @offset = (params[:limit] || 40), (params[:offset] || 0)
@commits = @repo.commits(@ref, @path, @limit, @offset) @commits = @repo.commits(@ref, @path, @limit, @offset)
@note_counts = Note.where(commit_id: @commits.map(&:id)).
group(:commit_id).count
respond_to do |format| respond_to do |format|
format.html # index.html.erb format.html # index.html.erb
......
...@@ -32,6 +32,8 @@ class Projects::MergeRequestsController < Projects::ApplicationController ...@@ -32,6 +32,8 @@ class Projects::MergeRequestsController < Projects::ApplicationController
end end
def show def show
@note_counts = Note.where(commit_id: @merge_request.commits.map(&:id)).
group(:commit_id).count
respond_to do |format| respond_to do |format|
format.html format.html
format.diff { render text: @merge_request.to_diff(current_user) } format.diff { render text: @merge_request.to_diff(current_user) }
...@@ -86,6 +88,9 @@ class Projects::MergeRequestsController < Projects::ApplicationController ...@@ -86,6 +88,9 @@ class Projects::MergeRequestsController < Projects::ApplicationController
@compare_failed = true @compare_failed = true
end end
@note_counts = Note.where(commit_id: @commits.map(&:id)).
group(:commit_id).count
@diffs = compare_action.diffs @diffs = compare_action.diffs
@merge_request.title = @merge_request.source_branch.titleize.humanize @merge_request.title = @merge_request.source_branch.titleize.humanize
@target_project = @merge_request.target_project @target_project = @merge_request.target_project
......
...@@ -9,11 +9,15 @@ ...@@ -9,11 +9,15 @@
= link_to "Browse Code »", project_tree_path(project, commit), class: "pull-right" = link_to "Browse Code »", project_tree_path(project, commit), class: "pull-right"
.notes_count .notes_count
- if @note_counts
- note_count = @note_counts.fetch(commit.id, 0)
- else
- notes = project.notes.for_commit_id(commit.id) - notes = project.notes.for_commit_id(commit.id)
- if notes.any? - note_count = notes.count
- if note_count > 0
%span.label.label-gray %span.label.label-gray
%i.icon-comment %i.icon-comment= note_count
= notes.count
- if commit.description? - if commit.description?
.commit-row-description.js-toggle-content .commit-row-description.js-toggle-content
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment