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
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-03-22 23:55:00 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-03-22 23:55:00 +0300
commit43afe46bbd19b1edf60abf3f104fb2b0d29af564 (patch)
treee2a11249408e3403a5a125c50008e77ba1157e57 /app
parent20a12438ab470afe1a5736fc46091a6ef4c30073 (diff)
Refactor contributions events and write tests for calendar
Diffstat (limited to 'app')
-rw-r--r--app/controllers/users_controller.rb10
-rw-r--r--app/models/event.rb6
-rw-r--r--app/models/user.rb7
-rw-r--r--app/views/users/_projects.html.haml2
4 files changed, 13 insertions, 12 deletions
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index f39c820626f..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.
@@ -76,11 +73,12 @@ class UsersController < ApplicationController
def contributed_projects
@contributed_projects = Project.
- where(id: authorized_projects_ids & @user.contributed_projects_ids).reject(&:forked?)
+ where(id: authorized_projects_ids & @user.contributed_projects_ids).
+ includes(:namespace)
end
def contributions_calendar
@contributions_calendar ||= Gitlab::ContributionsCalendar.
- new(contributed_projects, @user)
+ new(contributed_projects.reject(&:forked?), @user)
end
end
diff --git a/app/models/event.rb b/app/models/event.rb
index 2103a48a71b..57f6d5cd4e0 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -55,6 +55,12 @@ class Event < ActiveRecord::Base
order('id DESC').limit(100).
update_all(updated_at: Time.now)
end
+
+ def contributions
+ where("action = ? OR (target_type in (?) AND action in (?))",
+ Event::PUSHED, ["MergeRequest", "Issue"],
+ [Event::CREATED, Event::CLOSED, Event::MERGED])
+ end
end
def proper?
diff --git a/app/models/user.rb b/app/models/user.rb
index ba325132df8..50f664a09a3 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -603,13 +603,10 @@ class User < ActiveRecord::Base
end
def contributed_projects_ids
- Event.where(author_id: self).
+ Event.contributions.where(author_id: self).
where("created_at > ?", Time.now - 1.year).
- where("action = :pushed OR (target_type = 'MergeRequest' AND action = :created)",
- pushed: Event::PUSHED, created: Event::CREATED).
reorder(project_id: :desc).
select(:project_id).
- uniq
- .map(&:project_id)
+ uniq.map(&:project_id)
end
end
diff --git a/app/views/users/_projects.html.haml b/app/views/users/_projects.html.haml
index 6c7779be30e..b7383d5594e 100644
--- a/app/views/users/_projects.html.haml
+++ b/app/views/users/_projects.html.haml
@@ -1,5 +1,5 @@
- if @contributed_projects.present?
- .panel.panel-default
+ .panel.panel-default.contributed-projects
.panel-heading Projects contributed to
= render 'shared/projects_list',
projects: @contributed_projects.sort_by(&:star_count).reverse,