Commit 0a4283b50adb10c13cf2f00c83e372549a004a05
1 parent
eda2c0c6
Exists in
spb-stable
and in
3 other branches
Extract sorting into a method.
Showing
2 changed files
with
12 additions
and
9 deletions
Show diff stats
app/controllers/projects_controller.rb
@@ -130,14 +130,13 @@ class ProjectsController < ApplicationController | @@ -130,14 +130,13 @@ class ProjectsController < ApplicationController | ||
130 | else | 130 | else |
131 | [] | 131 | [] |
132 | end | 132 | end |
133 | - team_members = @project.team.members.sort_by(&:username).map { |user| { username: user.username, name: user.name } } | 133 | + team_members = sorted(@project.team.members) |
134 | participants = team_members + participating | 134 | participants = team_members + participating |
135 | - #participating = @project.issues.map { |issue| issue.participants.sort_by(&:username).map { |user| { username: user.username, name: user.name } } }.flatten | ||
136 | @suggestions = { | 135 | @suggestions = { |
137 | emojis: Emoji.names.map { |e| { name: e, path: view_context.image_url("emoji/#{e}.png") } }, | 136 | emojis: Emoji.names.map { |e| { name: e, path: view_context.image_url("emoji/#{e}.png") } }, |
138 | issues: @project.issues.select([:iid, :title, :description]), | 137 | issues: @project.issues.select([:iid, :title, :description]), |
139 | mergerequests: @project.merge_requests.select([:iid, :title, :description]), | 138 | mergerequests: @project.merge_requests.select([:iid, :title, :description]), |
140 | - members: participants.uniq | 139 | + members: participants |
141 | } | 140 | } |
142 | 141 | ||
143 | respond_to do |format| | 142 | respond_to do |format| |
@@ -174,14 +173,19 @@ class ProjectsController < ApplicationController | @@ -174,14 +173,19 @@ class ProjectsController < ApplicationController | ||
174 | end | 173 | end |
175 | 174 | ||
176 | def participants_in(type, id) | 175 | def participants_in(type, id) |
177 | - note = case type | 176 | + users = case type |
178 | when "Issue", "MergeRequest" | 177 | when "Issue", "MergeRequest" |
179 | - type.constantize.find_by_iid(id) | ||
180 | - when "Commits" | ||
181 | - type.constantize.find(id) | 178 | + type.constantize.find_by_iid(id).participants |
179 | + when "Commit" | ||
180 | + author_ids = Note.for_commit_id(id).pluck(:author_id).uniq | ||
181 | + User.where(id: author_ids) | ||
182 | else | 182 | else |
183 | [] | 183 | [] |
184 | end | 184 | end |
185 | - note.participants.sort_by(&:username).map { |user| { username: user.username, name: user.name } } | 185 | + sorted(users) |
186 | + end | ||
187 | + | ||
188 | + def sorted(users) | ||
189 | + users.uniq.sort_by(&:username).map { |user| { username: user.username, name: user.name } } | ||
186 | end | 190 | end |
187 | end | 191 | end |
app/models/user.rb
@@ -169,7 +169,6 @@ class User < ActiveRecord::Base | @@ -169,7 +169,6 @@ class User < ActiveRecord::Base | ||
169 | scope :not_in_project, ->(project) { project.users.present? ? where("id not in (:ids)", ids: project.users.map(&:id) ) : all } | 169 | scope :not_in_project, ->(project) { project.users.present? ? where("id not in (:ids)", ids: project.users.map(&:id) ) : all } |
170 | scope :without_projects, -> { where('id NOT IN (SELECT DISTINCT(user_id) FROM users_projects)') } | 170 | scope :without_projects, -> { where('id NOT IN (SELECT DISTINCT(user_id) FROM users_projects)') } |
171 | scope :ldap, -> { where(provider: 'ldap') } | 171 | scope :ldap, -> { where(provider: 'ldap') } |
172 | - scope :participating, ->(notes){ where(id: notes.inc_author.map(&:author_id))} | ||
173 | 172 | ||
174 | scope :potential_team_members, ->(team) { team.members.any? ? active.not_in_team(team) : active } | 173 | scope :potential_team_members, ->(team) { team.members.any? ? active.not_in_team(team) : active } |
175 | 174 |