From 63b58b9491badf4fe5fa79a32c6ad77be2bf3c25 Mon Sep 17 00:00:00 2001 From: Sato Hiroyuki Date: Wed, 24 Apr 2013 15:06:31 +0000 Subject: [PATCH] Reducing database access. --- app/helpers/graph_helper.rb | 3 +-- app/models/network/graph.rb | 11 ++++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/helpers/graph_helper.rb b/app/helpers/graph_helper.rb index ca7d823a45a..71a07d6cad1 100644 --- a/app/helpers/graph_helper.rb +++ b/app/helpers/graph_helper.rb @@ -4,8 +4,7 @@ module GraphHelper refs += commit.refs.collect{|r|r.name}.join(" ") if commit.refs # append note count - notes = @project.notes.for_commit_id(commit.id) - refs += "[#{notes.count}]" if notes.any? + refs += "[#{@graph.notes[commit.id]}]" if @graph.notes[commit.id] > 0 refs end diff --git a/app/models/network/graph.rb b/app/models/network/graph.rb index 0fe7765b9ea..ea7d188cc38 100644 --- a/app/models/network/graph.rb +++ b/app/models/network/graph.rb @@ -2,7 +2,7 @@ require "grit" module Network class Graph - attr_reader :days, :commits, :map + attr_reader :days, :commits, :map, :notes def self.max_count @max_count ||= 650 @@ -16,10 +16,19 @@ module Network @commits = collect_commits @days = index_commits + @notes = collect_notes end protected + def collect_notes + h = Hash.new(0) + @project.notes.where('noteable_type = ?' ,"Commit").group('notes.commit_id').select('notes.commit_id, count(notes.id) as note_count').each do |item| + h[item["commit_id"]] = item["note_count"] + end + h + end + # Get commits from repository # def collect_commits