Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-03-23 19:40:55 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-03-23 19:40:55 +0300
commite24da35984c13132e204ff923e4b75600ebed56e (patch)
tree73c373598b5b5a97df452adcaa6496b3aed223a0 /app/controllers
parent3ca34bb8f0fa4fa3a40e9ccc44cd5d8784f30c7d (diff)
parentb449bc5b77aa658db67ebcb25f709fe51c29b129 (diff)
Merge branch 'improve-contributions-calendar' into 'master'
Replace commits calendar with contributions calendar * count opening of issues and merge requests * dont trigger git repository - use events from database * count pushes instead of commits for faster and easier counting * much-much faster since does not affected by repository size See merge request !420
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/users_controller.rb35
1 files changed, 17 insertions, 18 deletions
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 68130eb128c..f9b568b8af9 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -4,10 +4,7 @@ class UsersController < ApplicationController
layout :determine_layout
def show
- @contributed_projects = Project.
- where(id: authorized_projects_ids & @user.contributed_projects_ids).
- in_group_namespace.
- includes(:namespace).
+ @contributed_projects = contributed_projects.joined(@user).
reject(&:forked?)
@projects = @user.personal_projects.
@@ -31,9 +28,7 @@ class UsersController < ApplicationController
end
def calendar
- projects = Project.where(id: authorized_projects_ids & @user.contributed_projects_ids)
-
- calendar = Gitlab::CommitsCalendar.new(projects, @user)
+ calendar = contributions_calendar
@timestamps = calendar.timestamps
@starting_year = calendar.starting_year
@starting_month = calendar.starting_month
@@ -42,20 +37,13 @@ class UsersController < ApplicationController
end
def calendar_activities
- projects = Project.where(id: authorized_projects_ids & @user.contributed_projects_ids)
+ @calendar_date = Date.parse(params[:date]) rescue nil
+ @events = []
- date = Date.parse(params[:date]) rescue nil
- if date
- @calendar_activities = Gitlab::CommitsCalendar.get_commits_for_date(projects, @user, date)
- else
- @calendar_activities = {}
+ if @calendar_date
+ @events = contributions_calendar.events_by_date(@calendar_date)
end
- # get the total number of unique commits
- @commit_count = @calendar_activities.values.flatten.map(&:id).uniq.count
-
- @calendar_date = date
-
render 'calendar_activities', layout: false
end
@@ -82,4 +70,15 @@ class UsersController < ApplicationController
@authorized_projects_ids ||=
ProjectsFinder.new.execute(current_user).pluck(:id)
end
+
+ def contributed_projects
+ @contributed_projects = Project.
+ where(id: authorized_projects_ids & @user.contributed_projects_ids).
+ includes(:namespace)
+ end
+
+ def contributions_calendar
+ @contributions_calendar ||= Gitlab::ContributionsCalendar.
+ new(contributed_projects.reject(&:forked?), @user)
+ end
end