diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index ba92ba2bdae..65e72792924 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -23,7 +23,7 @@ class IssuesController < ProjectResourceController assignee_id, milestone_id = params[:assignee_id], params[:milestone_id] - @assignee = @project.users.find(assignee_id) if assignee_id.present? && !assignee_id.to_i.zero? + @assignee = @project.team.find(assignee_id) if assignee_id.present? && !assignee_id.to_i.zero? @milestone = @project.milestones.find(milestone_id) if milestone_id.present? && !milestone_id.to_i.zero? respond_to do |format| diff --git a/app/models/group.rb b/app/models/group.rb index 5a6e30e1c2d..72baa78910d 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -30,12 +30,6 @@ class Group < Namespace ) end - def users - users = User.joins(:users_projects).where(users_projects: {project_id: project_ids}) - users = users << owner - users.uniq - end - def human_name name end diff --git a/app/models/project_team.rb b/app/models/project_team.rb index d84d46431f5..7f8a00d077c 100644 --- a/app/models/project_team.rb +++ b/app/models/project_team.rb @@ -21,6 +21,11 @@ class ProjectTeam end end + def find user_id + user = project.users.find_by_id(user_id) + user ||= project.group.users.find_by_id(user_id) + end + def get_tm user_id project.users_projects.find_by_user_id(user_id) end diff --git a/app/views/groups/people.html.haml b/app/views/groups/people.html.haml index b55e1b1379e..39657a084ca 100644 --- a/app/views/groups/people.html.haml +++ b/app/views/groups/people.html.haml @@ -16,16 +16,4 @@ (#{@members.count}) %ul.well-list - @members.each do |member| - - user = member.user - - next unless user - %li - = image_tag gravatar_icon(user.email, 16), class: "avatar s16" - %strong= user.name - %span.cgray= user.username - - %span.pull-right - - if @group.owners.include?(user) - %span.label.label-info Group Owner - - else - = member.human_access - + = render 'users_groups/users_group', member: member diff --git a/app/views/issues/_form.html.haml b/app/views/issues/_form.html.haml index 57460e623ab..38aea6f06dc 100644 --- a/app/views/issues/_form.html.haml +++ b/app/views/issues/_form.html.haml @@ -21,7 +21,7 @@ Assign to .input .pull-left - = f.select(:assignee_id, @project.users.alphabetically.collect {|p| [ p.name, p.id ] }, { include_blank: "Select a user" }, {class: 'chosen'}) + = f.select(:assignee_id, @project.team.members.sort_by(&:name).map {|p| [ p.name, p.id ] }, { include_blank: "Select a user" }, {class: 'chosen'}) .pull-right   = link_to 'Assign to me', '#', class: 'btn btn-small assign-to-me-link' diff --git a/app/views/issues/_issues.html.haml b/app/views/issues/_issues.html.haml index cc8d8d9cae2..68598684f90 100644 --- a/app/views/issues/_issues.html.haml +++ b/app/views/issues/_issues.html.haml @@ -7,7 +7,7 @@ %span.update_issues_text Update selected issues with   .left = select_tag('update[status]', options_for_select(['open', 'closed']), prompt: "Status") - = select_tag('update[assignee_id]', options_from_collection_for_select(@project.users.all, "id", "name", params[:assignee_id]), prompt: "Assignee") + = select_tag('update[assignee_id]', options_from_collection_for_select(@project.team.members, "id", "name", params[:assignee_id]), prompt: "Assignee") = select_tag('update[milestone_id]', options_from_collection_for_select(issues_active_milestones, "id", "title", params[:milestone_id]), prompt: "Milestone") = hidden_field_tag 'update[issues_ids]', [] = hidden_field_tag :status, params[:status] @@ -50,7 +50,7 @@ Any = link_to project_issues_with_filter_path(@project, assignee_id: 0) do Unassigned - - @project.users.sort_by(&:name).each do |user| + - @project.team.members.sort_by(&:name).each do |user| %li = link_to project_issues_with_filter_path(@project, assignee_id: user.id) do = image_tag gravatar_icon(user.email), class: "avatar s16" diff --git a/app/views/users_groups/_users_group.html.haml b/app/views/users_groups/_users_group.html.haml new file mode 100644 index 00000000000..75f6d1182db --- /dev/null +++ b/app/views/users_groups/_users_group.html.haml @@ -0,0 +1,12 @@ +- user = member.user +- return unless user +%li + = image_tag gravatar_icon(user.email, 16), class: "avatar s16" + %strong= user.name + %span.cgray= user.username + + %span.pull-right + - if @group.owners.include?(user) + %span.label.label-info Group Owner + - else + = member.human_access