Commit d839f6c52571e3b873a05779b1131f7b00670b31

Authored by Andrey Kumanyaev
Committed by Dmitriy Zaporozhets
1 parent e52fec9c

Remove simple code duplication in members controllers

app/controllers/admin/teams/members_controller.rb
1 class Admin::Teams::MembersController < Admin::Teams::ApplicationController 1 class Admin::Teams::MembersController < Admin::Teams::ApplicationController
2 def new 2 def new
3 - @users = User.active  
4 - @users = @users.not_in_team(user_team) if user_team.members.any? 3 + @users = User.potential_team_members(user_team)
5 @users = UserDecorator.decorate @users 4 @users = UserDecorator.decorate @users
6 end 5 end
7 6
app/controllers/teams/members_controller.rb
@@ -7,8 +7,7 @@ class Teams::MembersController &lt; Teams::ApplicationController @@ -7,8 +7,7 @@ class Teams::MembersController &lt; Teams::ApplicationController
7 end 7 end
8 8
9 def new 9 def new
10 - @users = User.active  
11 - @users = @users.not_in_team(user_team) if user_team.members.any? 10 + @users = User.potential_team_members(user_team)
12 @users = UserDecorator.decorate @users 11 @users = UserDecorator.decorate @users
13 end 12 end
14 13
app/models/user.rb
@@ -91,6 +91,7 @@ class User &lt; ActiveRecord::Base @@ -91,6 +91,7 @@ class User &lt; ActiveRecord::Base
91 scope :alphabetically, order('name ASC') 91 scope :alphabetically, order('name ASC')
92 scope :in_team, ->(team){ where(id: team.member_ids) } 92 scope :in_team, ->(team){ where(id: team.member_ids) }
93 scope :not_in_team, ->(team){ where('users.id NOT IN (:ids)', ids: team.member_ids) } 93 scope :not_in_team, ->(team){ where('users.id NOT IN (:ids)', ids: team.member_ids) }
  94 + scope :potential_team_members, ->(team) { team.members.any? ? active : active.not_in_team(team) }
94 95
95 # 96 #
96 # Class methods 97 # Class methods