summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-01-29 17:07:44 -0800
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-01-29 17:07:44 -0800
commitf1cf49218fb40b61f82ff74dbb7eaba32b439a5a (patch)
treede03aa30e4164bc51507f2583157f7a79e353ca9 /lib
parenta3c2873f50f42016619f8ffc959cf9e20b5f340d (diff)
downloadgitlab-ce-f1cf49218fb40b61f82ff74dbb7eaba32b439a5a.tar.gz
Improve contribution calendar on user page
* cache user contributions for day * ignore forks in calendar contribtuions
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/commits_calendar.rb16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/gitlab/commits_calendar.rb b/lib/gitlab/commits_calendar.rb
index ccc80d080af..2f30d238e6b 100644
--- a/lib/gitlab/commits_calendar.rb
+++ b/lib/gitlab/commits_calendar.rb
@@ -2,15 +2,15 @@ module Gitlab
class CommitsCalendar
attr_reader :timestamps
- def initialize(repositories, user)
+ def initialize(projects, user)
@timestamps = {}
date_timestamps = []
- repositories.select(&:exists?).reject(&:empty?).each do |raw_repository|
- commits_log = raw_repository.commits_per_day_for_user(user)
- date_timestamps << commits_log
+ projects.reject(&:forked?).each do |project|
+ date_timestamps << ProjectContributions.new(project, user).commits_log
end
+ # Sumarrize commits from all projects per days
date_timestamps = date_timestamps.inject do |collection, date|
collection.merge(date) { |k, old_v, new_v| old_v + new_v }
end
@@ -21,5 +21,13 @@ module Gitlab
@timestamps[timestamp] = commits if timestamp
end
end
+
+ def starting_year
+ (Time.now - 1.year).strftime("%Y")
+ end
+
+ def starting_month
+ Date.today.strftime("%m").to_i
+ end
end
end