diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-01-29 17:07:44 -0800 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-01-29 17:07:44 -0800 |
commit | f1cf49218fb40b61f82ff74dbb7eaba32b439a5a (patch) | |
tree | de03aa30e4164bc51507f2583157f7a79e353ca9 /lib | |
parent | a3c2873f50f42016619f8ffc959cf9e20b5f340d (diff) | |
download | gitlab-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.rb | 16 |
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 |