mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-03 03:40:49 +08:00
Merge branch 'standalone_develop' of https://gitlink.org.cn/Trustie/forgeplus into standalone_develop
This commit is contained in:
@@ -237,7 +237,42 @@ class Api::Pm::IssuesController < Api::Pm::BaseController
|
||||
end
|
||||
end
|
||||
|
||||
def link_issues
|
||||
children_issues = Issue.where(root_id: @issue.id)
|
||||
linkable_issues = Issue.where(id: PmLink.where(linkable_type: "Issue", linkable_id: @issue.id).pluck(:be_linkable_id))
|
||||
belinkable_issues = Issue.where(id: PmLink.where(be_linkable_type: "Issue", be_linkable_id: @issue.id).pluck(:linkable_id))
|
||||
|
||||
full_link_issues_ids = children_issues.pluck(:id) | linkable_issues.pluck(:id) | belinkable_issues.pluck(:id)
|
||||
compare_link_issues_ids = children_issues.pluck(:id) | linkable_issues.pluck(:id) | belinkable_issues.pluck(:id)
|
||||
i = compare_link_issues_ids.count
|
||||
while i > 0 do
|
||||
children_issues = Issue.where(root_id: compare_link_issues_ids)
|
||||
linkable_issues = Issue.where(id: PmLink.where(linkable_type: "Issue", linkable_id: compare_link_issues_ids).pluck(:be_linkable_id))
|
||||
belinkable_issues = Issue.where(id: PmLink.where(be_linkable_type: "Issue", be_linkable_id: compare_link_issues_ids).pluck(:linkable_id))
|
||||
|
||||
compare_link_issues_ids = children_issues.pluck(:id) | linkable_issues.pluck(:id) | belinkable_issues.pluck(:id)
|
||||
full_link_issues_ids = full_link_issues_ids | compare_link_issues_ids
|
||||
i = compare_link_issues_ids.count
|
||||
end
|
||||
|
||||
@requirement_issues = Issue.where(id:full_link_issues_ids, pm_issue_type:1)
|
||||
@task_issues = Issue.where(id:full_link_issues_ids, pm_issue_type:2)
|
||||
@bug_issues = Issue.where(id:full_link_issues_ids, pm_issue_type:3)
|
||||
end
|
||||
|
||||
private
|
||||
def circle_link_issues(issue_ids)
|
||||
if issue_ids.present?
|
||||
children_issues = Issue.joins(:parent_issue).where(issues: {id: issue_ids})
|
||||
linkable_issues = Issue.where(id: PmLink.where(linkable_type: "Issue", linkable_id: issue_ids))
|
||||
belinkable_issues = Issue.where(id: PmLink.where(be_linkable_type: "Issue", be_linkable_id: issue_ids))
|
||||
|
||||
return circle_link_issues(children_issues.pluck(:id))
|
||||
else
|
||||
return []
|
||||
end
|
||||
end
|
||||
|
||||
def check_issue_operate_permission
|
||||
return if params[:project_id].to_i.zero?
|
||||
render_forbidden('您没有操作权限!') unless @project.member?(current_user) || current_user.admin? || @issue.user == current_user
|
||||
|
||||
Reference in New Issue
Block a user