add: project operate add organization team users
This commit is contained in:
parent
7d612ea6b3
commit
65d51e8578
|
@ -215,7 +215,7 @@ class PullRequestsController < ApplicationController
|
||||||
def get_relatived
|
def get_relatived
|
||||||
@project_tags = @project.issue_tags&.select(:id,:name, :color).as_json
|
@project_tags = @project.issue_tags&.select(:id,:name, :color).as_json
|
||||||
@project_versions = @project.versions&.select(:id,:name, :status).as_json
|
@project_versions = @project.versions&.select(:id,:name, :status).as_json
|
||||||
@project_members = @project.members_user_infos
|
@project_members = @project.all_collaborators
|
||||||
@project_priories = IssuePriority&.select(:id,:name, :position).as_json
|
@project_priories = IssuePriority&.select(:id,:name, :position).as_json
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -124,14 +124,13 @@ module TagChosenHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def render_cache_collaborators(project)
|
def render_cache_collaborators(project)
|
||||||
cache_key = "all_collaborators/#{project.members.maximum('created_on')}"
|
cache_key = "all_collaborators/#{project.all_collaborators.maximum('created_on')}"
|
||||||
|
|
||||||
Rails.cache.fetch(cache_key) do
|
Rails.cache.fetch(cache_key) do
|
||||||
project.members.includes(:user).collect do |event|
|
project.all_collaborators.order(created_on: :desc).collect do |user|
|
||||||
{
|
{
|
||||||
id: event.user&.id,
|
id: user&.id,
|
||||||
name: event.user&.show_real_name,
|
name: user&.show_real_name,
|
||||||
avatar_url: url_to_avatar(event.user),
|
avatar_url: url_to_avatar(user),
|
||||||
is_chosen: '0'
|
is_chosen: '0'
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
@ -171,10 +170,8 @@ module TagChosenHelper
|
||||||
# depended_issues_id = @depended_issues_id
|
# depended_issues_id = @depended_issues_id
|
||||||
|
|
||||||
end
|
end
|
||||||
project_members = project.members_user_infos
|
|
||||||
project_members_info = [] #指派给
|
project_members_info = [] #指派给
|
||||||
project_members.includes(user: :user_extension).each do |member|
|
project.all_collaborators.includes(:user_extension).each do |user|
|
||||||
user = member&.user
|
|
||||||
if user
|
if user
|
||||||
real_name = user.try(:show_real_name)
|
real_name = user.try(:show_real_name)
|
||||||
user_id = user.id
|
user_id = user.id
|
||||||
|
|
|
@ -92,4 +92,10 @@ module ProjectOperable
|
||||||
def has_menu_permission(unit_type)
|
def has_menu_permission(unit_type)
|
||||||
self.project_units.where(unit_type: unit_type).exists?
|
self.project_units.where(unit_type: unit_type).exists?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def all_collaborators
|
||||||
|
member_sql = User.joins(members: :roles).where(members: {project_id: self.id}, roles: {name: %w(Manager Developer Reporter)}).to_sql
|
||||||
|
team_user_sql = User.joins(teams: :team_projects).where(team_projects: {project_id: self.id}).to_sql
|
||||||
|
return User.from("( #{ member_sql } UNION #{ team_user_sql } ) AS users").distinct
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -152,6 +152,9 @@ class User < Owner
|
||||||
# 项目
|
# 项目
|
||||||
has_many :applied_projects, dependent: :destroy
|
has_many :applied_projects, dependent: :destroy
|
||||||
has_many :operate_applied_transfer_projects, class_name: 'AppliedTransferProject', dependent: :destroy
|
has_many :operate_applied_transfer_projects, class_name: 'AppliedTransferProject', dependent: :destroy
|
||||||
|
has_many :members, dependent: :destroy
|
||||||
|
has_many :team_users, dependent: :destroy
|
||||||
|
has_many :teams, through: :team_users
|
||||||
|
|
||||||
# 教学案例
|
# 教学案例
|
||||||
# has_many :libraries, dependent: :destroy
|
# has_many :libraries, dependent: :destroy
|
||||||
|
|
|
@ -5,10 +5,10 @@ json.issue_priories @project_priories
|
||||||
json.project_author @project.owner.try(:show_real_name)
|
json.project_author @project.owner.try(:show_real_name)
|
||||||
json.project_name @project.try(:name)
|
json.project_name @project.try(:name)
|
||||||
json.members do
|
json.members do
|
||||||
json.array! @project_members.to_a.each do |member|
|
json.array! @project_members.to_a.each do |user|
|
||||||
json.id member.user_id
|
json.id user.id
|
||||||
json.login member.user.try(:login)
|
json.login user.try(:login)
|
||||||
json.name member.user.try(:show_real_name)
|
json.name user.try(:show_real_name)
|
||||||
json.avatar_url url_to_avatar(member.user)
|
json.avatar_url url_to_avatar(user)
|
||||||
end
|
end
|
||||||
end
|
end
|
Loading…
Reference in New Issue