forked from Gitlink/forgeplus
修改bug
This commit is contained in:
parent
16a5887d66
commit
4c7fa23404
|
@ -13,14 +13,15 @@ class IssuesController < ApplicationController
|
|||
|
||||
def index
|
||||
@user_admin_or_member = current_user.present? && current_user.logged? && (current_user.admin || @project.member?(current_user))
|
||||
issues = @project.issues.issue_issue
|
||||
issues = @project.issues.issue_issue.issue_index_includes
|
||||
issues = issues.where(is_private: false) unless @user_admin_or_member
|
||||
|
||||
@all_issues_size = issues.size
|
||||
@open_issues_size = issues.where.not(status_id: 5).size
|
||||
@close_issues_size = issues.where(status_id: 5).size
|
||||
@assign_to_me_size = issues.where(assigned_to_id: current_user&.id).size
|
||||
@my_published_size = issues.where(author_id: current_user&.id).size
|
||||
scopes = Issues::ListQueryService.call(issues,params.delete_if{|k,v| v.blank?})
|
||||
scopes = Issues::ListQueryService.call(issues,params.delete_if{|k,v| v.blank?}, "Issue")
|
||||
@issues_size = scopes.size
|
||||
@issues = paginate(scopes)
|
||||
|
||||
|
|
|
@ -10,15 +10,15 @@ class PullRequestsController < ApplicationController
|
|||
|
||||
def index
|
||||
# @issues = Gitea::PullRequest::ListService.new(@user,@repository.try(:identifier)).call #通过gitea获取
|
||||
issues = @project.issues.issue_pull_request
|
||||
issues = @project.issues.issue_pull_request.issue_index_includes.includes(:pull_request)
|
||||
issues = issues.where(is_private: false) unless current_user.present? && (current_user.admin? || @project.member?(current_user))
|
||||
@all_issues_size = issues.size
|
||||
@open_issues_size = issues.where.not(status_id: 5).size
|
||||
@close_issues_size = issues.where(status_id: 5).size
|
||||
@open_issues_size = issues.joins(:pull_request).where(pull_requests: {status: 0}).size
|
||||
@close_issues_size = issues.joins(:pull_request).where(pull_requests: {status: 2}).size
|
||||
@merged_issues_size = issues.joins(:pull_request).where(pull_requests: {status: 1}).size
|
||||
@user_admin_or_member = current_user.present? && (current_user.admin || @project.member?(current_user))
|
||||
|
||||
scopes = Issues::ListQueryService.call(issues,params.delete_if{|k,v| v.blank?})
|
||||
scopes = Issues::ListQueryService.call(issues,params.delete_if{|k,v| v.blank?}, "PullRequest")
|
||||
@issues_size = scopes.size
|
||||
@issues = paginate(scopes)
|
||||
end
|
||||
|
@ -130,19 +130,6 @@ class PullRequestsController < ApplicationController
|
|||
|
||||
end
|
||||
|
||||
def simple_update
|
||||
# ActiveRecord::Base.transaction do
|
||||
# begin
|
||||
# @pull_request.update(status: 2)
|
||||
# @pull_request.issue.update(status_id: 5)
|
||||
# normal_status(1, "已拒绝")
|
||||
# rescue => e
|
||||
# normal_status(-1, e.message)
|
||||
# raise ActiveRecord::Rollback
|
||||
# end
|
||||
# end
|
||||
end
|
||||
|
||||
def refuse_merge
|
||||
ActiveRecord::Base.transaction do
|
||||
begin
|
||||
|
@ -176,9 +163,7 @@ class PullRequestsController < ApplicationController
|
|||
}
|
||||
merge_pr = Gitea::PullRequest::MergeService.new(current_user, @repository.try(:identifier), @pull_request.try(:gpid), requests_params).call
|
||||
if @pull_request.update_attribute(:status, 1) && merge_pr[:status].to_i == 200
|
||||
# @pull_request.project_trends.create(user_id: current_user.id, project_id: @project.id, action_type: "merge")
|
||||
@pull_request&.project_trends&.update_all(action_type: "close")
|
||||
|
||||
@issue&.custom_journal_detail("merge", "", "该合并请求已被合并", current_user&.id)
|
||||
normal_status(1, "合并成功")
|
||||
else
|
||||
|
@ -192,57 +177,6 @@ class PullRequestsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
#评审
|
||||
def check_merge
|
||||
# notes = params[:content]
|
||||
# pull_request_status = params[:status]
|
||||
# if notes.blank?
|
||||
# normal_status(-1, "评论内容不能为空")
|
||||
# else
|
||||
# if @pull_request.status > 0
|
||||
# normal_status(-1, "已合并,不能评审")
|
||||
# else
|
||||
# if pull_request_status.to_i == 1
|
||||
# message = "评审通过:"
|
||||
# elsif pull_request_status.to_i == 2
|
||||
# message = "评审请求变更:"
|
||||
# else
|
||||
# message = ""
|
||||
# end
|
||||
# journal_params = {
|
||||
# journalized_id: @issue.id ,
|
||||
# journalized_type: "Issue",
|
||||
# user_id: current_user.id ,
|
||||
# notes: message + notes.to_s.strip
|
||||
# }
|
||||
# journal = Journal.new journal_params
|
||||
# if journal.save
|
||||
# if pull_request_status.present?
|
||||
# @pull_request.update_attribute(:status, pull_request_status.to_i)
|
||||
# end
|
||||
# if pull_request_status.to_i == 1
|
||||
# requests_params = {
|
||||
# do: "merge",
|
||||
# MergeMessageField: notes,
|
||||
# MergeTitleField: "Merge PullRequest ##{@pull_request.gpid}"
|
||||
# }
|
||||
# merge_pr = Gitea::PullRequest::MergeService.new(current_user, @repository.try(:identifier), @pull_request.try(:gpid), requests_params).call
|
||||
# if merge_pr
|
||||
# @pull_request&.project_trends&.update_all(action_type: "close")
|
||||
# # @pull_request.project_trends.create(user_id: current_user.id, project_id: @project.id, action_type: "merge")
|
||||
# @issue.custom_journal_detail("merge", "", "该合并请求已被合并", current_user&.id)
|
||||
# normal_status(1, "评审成功")
|
||||
# else
|
||||
# normal_status(-1, "评审失败")
|
||||
# end
|
||||
# end
|
||||
# normal_status(0, "评审成功")
|
||||
# else
|
||||
# normal_status(-1, "评审失败")
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
end
|
||||
|
||||
def check_can_merge
|
||||
target_head = params[:head] #源分支
|
||||
|
@ -268,10 +202,8 @@ class PullRequestsController < ApplicationController
|
|||
private
|
||||
|
||||
def set_repository
|
||||
# @project = Project.find_by_identifier! params[:id]
|
||||
@repository = @project.repository
|
||||
@user = @project.owner
|
||||
# normal_status(-1, "项目不存在") unless @project.present?
|
||||
normal_status(-1, "仓库不存在") unless @repository.present?
|
||||
normal_status(-1, "用户不存在") unless @user.present?
|
||||
end
|
||||
|
|
|
@ -34,7 +34,7 @@ module TagChosenHelper
|
|||
end
|
||||
project_members = project.members_user_infos
|
||||
project_members_info = [] #指派给
|
||||
project_members.each do |member|
|
||||
project_members.includes(user: :user_extension).each do |member|
|
||||
user = member&.user
|
||||
if user
|
||||
real_name = user.try(:show_real_name)
|
||||
|
|
|
@ -22,14 +22,14 @@ class Issue < ApplicationRecord
|
|||
scope :issue_many_includes, ->{includes(journals: :user)}
|
||||
scope :issue_issue, ->{where(issue_classify: [nil,"issue"])}
|
||||
scope :issue_pull_request, ->{where(issue_classify: "pull_request")}
|
||||
scope :issue_index_includes, ->{includes(:user,:tracker, :priority, :version, :issue_status, :journals, :issue_times)}
|
||||
scope :issue_index_includes, ->{includes(:tracker, :priority, :version, :issue_status, :journals,:issue_tags,user: :user_extension)}
|
||||
|
||||
after_update :change_versions_count
|
||||
after_destroy :update_closed_issues_count_in_project!
|
||||
|
||||
|
||||
def get_assign_user
|
||||
User.select(:login, :lastname,:firstname, :nickname)&.find_by_id(self.assigned_to_id)
|
||||
User&.find_by_id(self.assigned_to_id) if self.assigned_to_id.present?
|
||||
end
|
||||
|
||||
def create_journal_detail(change_files, issue_files, issue_file_ids, user_id)
|
||||
|
|
|
@ -17,6 +17,12 @@ class Projects::ListMyQuery < ApplicationQuery
|
|||
projects = Project.visible
|
||||
end
|
||||
|
||||
if params[:is_public].present? && !params[:is_public]
|
||||
projects = projects.is_private.joins(:members).where(members: { user_id: user.id })
|
||||
else
|
||||
projects = projects.visible.joins(:members).where(members: { user_id: user.id })
|
||||
end
|
||||
|
||||
if params[:category].blank?
|
||||
projects = projects.joins(:members).where(members: { user_id: user.id })
|
||||
elsif params[:category].to_s == "join"
|
||||
|
@ -28,10 +34,10 @@ class Projects::ListMyQuery < ApplicationQuery
|
|||
elsif params[:category].to_s == "forked" #我fork的
|
||||
fork_ids = user.fork_users.select(:id, :fork_project_id).pluck(:fork_project_id)
|
||||
projects = projects.where(id: fork_ids)
|
||||
elsif params[:category].to_s == "public"
|
||||
projects = projects.visible.joins(:members).where(members: { user_id: user.id })
|
||||
elsif params[:category].to_s == "private"
|
||||
projects = projects.is_private.joins(:members).where(members: { user_id: user.id })
|
||||
# elsif params[:category].to_s == "public"
|
||||
# projects = projects.visible.joins(:members).where(members: { user_id: user.id })
|
||||
# elsif params[:category].to_s == "private"
|
||||
# projects = projects.is_private.joins(:members).where(members: { user_id: user.id })
|
||||
end
|
||||
|
||||
if params[:project_type].to_s === "common"
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
class Issues::ListQueryService < ApplicationService
|
||||
|
||||
attr_reader :all_issues, :params
|
||||
attr_reader :all_issues, :params,:select_type
|
||||
|
||||
def initialize(all_issues, params)
|
||||
def initialize(all_issues, params, select_type)
|
||||
@all_issues = all_issues
|
||||
@params = params
|
||||
@select_type = select_type
|
||||
end
|
||||
|
||||
def call
|
||||
|
@ -17,7 +18,11 @@ class Issues::ListQueryService < ApplicationService
|
|||
if status_type.to_s == "2" #表示关闭中的
|
||||
issues = issues.where(status_id: 5)
|
||||
elsif status_type.to_s == "1"
|
||||
if(select_type == "Issue")
|
||||
issues = issues.where.not(status_id: 5) #默认显示开启中的
|
||||
else
|
||||
issues = issues.joins(:pull_request).where(pull_requests: {status: 0}) #默认显示开启中的
|
||||
end
|
||||
elsif status_type.to_s == "11" #表示pr的已关闭
|
||||
issues = issues.joins(:pull_request).where(pull_requests: {status: 1})
|
||||
end
|
||||
|
|
|
@ -7,9 +7,12 @@ class Projects::CreateService < ApplicationService
|
|||
end
|
||||
|
||||
def call
|
||||
Rails.logger.info("#############__________project_params______###########{project_params}")
|
||||
|
||||
@project = Project.new(project_params)
|
||||
ActiveRecord::Base.transaction do
|
||||
if @project.save!
|
||||
Rails.logger.info("#############___________repository_params______###########{repository_params}")
|
||||
Repositories::CreateService.new(user, @project, repository_params).call
|
||||
else
|
||||
#
|
||||
|
@ -39,17 +42,17 @@ class Projects::CreateService < ApplicationService
|
|||
|
||||
def repository_params
|
||||
{
|
||||
hidden: get_is_public,
|
||||
hidden: !repo_is_public,
|
||||
user_id: params[:user_id],
|
||||
identifier: params[:repository_name]
|
||||
}
|
||||
end
|
||||
|
||||
def get_is_public
|
||||
params[:private] || false
|
||||
end
|
||||
# def get_is_public
|
||||
# params[:private] || false
|
||||
# end
|
||||
|
||||
def repo_is_public
|
||||
params[:private].blank? ? true : !get_is_public
|
||||
params[:private].blank? ? true : !params[:private]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -11,6 +11,8 @@ class Repositories::CreateService < ApplicationService
|
|||
@repository = Repository.new(repository_params)
|
||||
ActiveRecord::Base.transaction do
|
||||
if @repository.save!
|
||||
Rails.logger.info("#############__________gitea_repository_params______###########{gitea_repository_params}")
|
||||
|
||||
gitea_repository = Gitea::Repository::CreateService.new(user.gitea_token, gitea_repository_params).call
|
||||
sync_project(@repository, gitea_repository)
|
||||
sync_repository(@repository, gitea_repository)
|
||||
|
|
|
@ -2,7 +2,7 @@ json.identifier @project.identifier
|
|||
json.name @project.name
|
||||
json.project_id @project.id
|
||||
json.repo_id @project.repository.id
|
||||
json.issues_count @project.issues_count
|
||||
json.issues_count @project.issues_count.to_i - @project.pull_requests_count.to_i
|
||||
json.pull_requests_count @project.pull_requests_count
|
||||
json.project_identifier @project.identifier
|
||||
json.praises_count @project.praises_count.to_i
|
||||
|
|
|
@ -64,8 +64,7 @@ Rails.application.routes.draw do
|
|||
resources :pull_requests, except: [:destroy] do
|
||||
member do
|
||||
post :pr_merge
|
||||
post :check_merge
|
||||
post :simple_update
|
||||
# post :check_merge
|
||||
post :refuse_merge
|
||||
end
|
||||
collection do
|
||||
|
|
Loading…
Reference in New Issue