Merge branch 'dev_trustie' of http://gitea.trustie.net/jasder/forgeplus into dev_trustie
This commit is contained in:
commit
2d9b2cd942
|
@ -382,7 +382,7 @@ class ApplicationController < ActionController::Base
|
||||||
|
|
||||||
def current_user
|
def current_user
|
||||||
if Rails.env.development?
|
if Rails.env.development?
|
||||||
User.current = User.find 36480
|
User.current = User.find 1
|
||||||
else
|
else
|
||||||
User.current
|
User.current
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
class ComposeProjectsController < ApplicationController
|
||||||
|
#未做完
|
||||||
|
before_action :require_login
|
||||||
|
before_action :set_compose
|
||||||
|
|
||||||
|
def create
|
||||||
|
project_ids = params[:project_ids]
|
||||||
|
ComposeProject.transaction do
|
||||||
|
project_ids.each do |p|
|
||||||
|
project = Project.select(:id, :user_id).find(p)
|
||||||
|
unless project.blank? || ComposeProject.exists?(user_id: project.user_id, project_id: p, compose_id: @compose.id)
|
||||||
|
ComposeProject.create!(user_id: project.user_id, project_id: p, compose_id: @compose.id, position: p)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
normal_status(0, "添加成功")
|
||||||
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
project_ids = params[:project_ids]
|
||||||
|
if ComposeProject.where(project_id: project_ids, compose_id: @compose.id).delete_all
|
||||||
|
normal_status(0, "项目删除成功")
|
||||||
|
else
|
||||||
|
normal_status(-1, "项目删除失败")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def set_compose
|
||||||
|
@compose = Compose.find(params[:compose_id])
|
||||||
|
unless @compose.present?
|
||||||
|
normal_status(-1, "组织不存在")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,99 @@
|
||||||
|
class ComposesController < ApplicationController
|
||||||
|
before_action :require_login, except: [:index]
|
||||||
|
before_action :find_compose, except: [:index, :new,:create]
|
||||||
|
|
||||||
|
def index
|
||||||
|
@order_type = params[:order] || "created_at"
|
||||||
|
@search_name = params[:search]
|
||||||
|
composes = Compose.compose_includes
|
||||||
|
if @search_name.present?
|
||||||
|
composes = composes.where("title like ?", "%#{@search_name}%")
|
||||||
|
end
|
||||||
|
composes = composes.order("#{@order_type} desc")
|
||||||
|
@page = params[:page] || 1
|
||||||
|
@limit = params[:limit] || 15
|
||||||
|
@composes_size = composes.size
|
||||||
|
@composes = composes.page(@page).per(@limit)
|
||||||
|
end
|
||||||
|
|
||||||
|
def new
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
ActiveRecord::Base.transaction do
|
||||||
|
begin
|
||||||
|
@compose = Compose.new(compose_params.merge(user_id: current_user.id))
|
||||||
|
if @compose.save
|
||||||
|
ComposeUser.create!(user_id: current_user.id, compose_id: @compose.id, is_manager: 1)
|
||||||
|
normal_status(0,"组织创建成功")
|
||||||
|
else
|
||||||
|
error_messages = @compose.errors.messages[:title][0]
|
||||||
|
normal_status(-1,"组织创建失败:#{error_messages}")
|
||||||
|
end
|
||||||
|
rescue Exception => e
|
||||||
|
tip_exception("#{e}")
|
||||||
|
raise ActiveRecord::Rollback
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def edit
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
if @compose.update_attributes(compose_params)
|
||||||
|
normal_status(0,"组织更新成功")
|
||||||
|
else
|
||||||
|
error_messages = @compose.errors.messages[:title][0]
|
||||||
|
normal_status(-1,"组织更新失败:#{error_messages}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
if @compose.destroy
|
||||||
|
normal_status(0,"组织删除成功")
|
||||||
|
else
|
||||||
|
normal_status(-1,"组织删除失败,请稍后重试")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def show
|
||||||
|
compose_projects_ids = @compose&.compose_projects&.pluck(:project_id)
|
||||||
|
search = params[:search]
|
||||||
|
if compose_projects_ids.size > 0
|
||||||
|
compose_projects = Project.where(id: compose_projects_ids)
|
||||||
|
|
||||||
|
if search.present?
|
||||||
|
compose_projects = compose_projects.where("name like ? ", "%#{search.to_s.strip}%")
|
||||||
|
end
|
||||||
|
else
|
||||||
|
compose_projects = []
|
||||||
|
end
|
||||||
|
|
||||||
|
@compose_projects_size = compose_projects.size
|
||||||
|
|
||||||
|
if @compose_projects_size > 0
|
||||||
|
@page = params[:page] || 1
|
||||||
|
@limit = params[:limit] || 15
|
||||||
|
@compose_projects = compose_projects.page(@page).per(@limit)
|
||||||
|
else
|
||||||
|
@compose_projects = compose_projects
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def compose_params
|
||||||
|
params.require(:compose).permit(:user_id, :title, :description, :show_mode, :compose_mode, :compose_users_count, :compose_projects_count)
|
||||||
|
end
|
||||||
|
|
||||||
|
def find_compose
|
||||||
|
@compose = Compose.find(params[:compose_id])
|
||||||
|
unless @compose.present?
|
||||||
|
normal_status(-1, "组织不存在")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -111,7 +111,7 @@ class IssuesController < ApplicationController
|
||||||
type: "user"
|
type: "user"
|
||||||
}.merge(tokens_params(@project))
|
}.merge(tokens_params(@project))
|
||||||
user_tokens = Gitea::Repository::Hooks::QueryService.new(query_params).call
|
user_tokens = Gitea::Repository::Hooks::QueryService.new(query_params).call
|
||||||
return normal_status(-1, "悬赏的奖金不足") if user_tokens[:value].to_i < params[:token].to_i
|
return normal_status(-1, "您的token值不足") if user_tokens[:value].to_i < params[:token].to_i
|
||||||
else
|
else
|
||||||
issue_params = issue_send_params(params)
|
issue_params = issue_send_params(params)
|
||||||
|
|
||||||
|
@ -159,8 +159,8 @@ class IssuesController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def edit
|
def edit
|
||||||
@all_branches = get_branches
|
# @all_branches = get_branches
|
||||||
@issue_chosen = issue_left_chosen(@project, @issue.id)
|
# @issue_chosen = issue_left_chosen(@project, @issue.id)
|
||||||
@issue_attachments = @issue.attachments
|
@issue_attachments = @issue.attachments
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -454,7 +454,7 @@ class IssuesController < ApplicationController
|
||||||
issue_type: params[:issue_type] || "1",
|
issue_type: params[:issue_type] || "1",
|
||||||
token: params[:token],
|
token: params[:token],
|
||||||
issue_tags_value: params[:issue_tag_ids].present? ? params[:issue_tag_ids].join(",") : "",
|
issue_tags_value: params[:issue_tag_ids].present? ? params[:issue_tag_ids].join(",") : "",
|
||||||
closed_on: (params[:status_id].to_i == 5) ? Time.now : nil,
|
closed_on: (params[:status_id].to_i == 5) ? Time.current : nil,
|
||||||
branch_name: params[:branch_name].to_s,
|
branch_name: params[:branch_name].to_s,
|
||||||
issue_classify: "issue",
|
issue_classify: "issue",
|
||||||
author_id: current_user.id,
|
author_id: current_user.id,
|
||||||
|
|
|
@ -86,7 +86,13 @@ class UsersController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
# 个人主页信息
|
# 个人主页信息
|
||||||
def homepage_info;end
|
def homepage_info
|
||||||
|
#待办事项,现在未做
|
||||||
|
@undo_events = 10
|
||||||
|
#用户的组织数量
|
||||||
|
# @user_composes_count = @user.composes.size
|
||||||
|
@user_composes_count = 10
|
||||||
|
end
|
||||||
|
|
||||||
def brief_introduction
|
def brief_introduction
|
||||||
content = params[:content].to_s.strip
|
content = params[:content].to_s.strip
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
class Compose < ApplicationRecord
|
||||||
|
#组织
|
||||||
|
belongs_to :user
|
||||||
|
has_many :compose_projects
|
||||||
|
has_many :compose_users
|
||||||
|
|
||||||
|
validates :title, presence: {message: "组织名称不能为空"}, uniqueness: {message: "组织名称已存在"}
|
||||||
|
|
||||||
|
scope :compose_includes, ->{includes(:compose_projects, :compose_users, :user)}
|
||||||
|
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
class ComposeProject < ApplicationRecord
|
||||||
|
#组织的项目记录表
|
||||||
|
belongs_to :compose
|
||||||
|
end
|
|
@ -0,0 +1,4 @@
|
||||||
|
class ComposeUser < ApplicationRecord
|
||||||
|
belongs_to :compose
|
||||||
|
belongs_to :user
|
||||||
|
end
|
|
@ -45,7 +45,8 @@ class User < ApplicationRecord
|
||||||
enumerize :platform, in: [:forge, :educoder, :trustie, :military], default: :forge, scope: :shallow
|
enumerize :platform, in: [:forge, :educoder, :trustie, :military], default: :forge, scope: :shallow
|
||||||
|
|
||||||
belongs_to :laboratory, optional: true
|
belongs_to :laboratory, optional: true
|
||||||
|
has_many :composes, dependent: :destroy
|
||||||
|
has_many :compose_users, dependent: :destroy
|
||||||
has_one :user_extension, dependent: :destroy
|
has_one :user_extension, dependent: :destroy
|
||||||
has_many :open_users, dependent: :destroy
|
has_many :open_users, dependent: :destroy
|
||||||
has_one :wechat_open_user, class_name: 'OpenUsers::Wechat'
|
has_one :wechat_open_user, class_name: 'OpenUsers::Wechat'
|
||||||
|
|
|
@ -14,6 +14,11 @@ class Projects::ListMyQuery < ApplicationQuery
|
||||||
projects = Project.joins(:members).where(members: { user_id: user.id })
|
projects = Project.joins(:members).where(members: { user_id: user.id })
|
||||||
elsif params[:category].to_s == "manage"
|
elsif params[:category].to_s == "manage"
|
||||||
projects = Project.where(user_id: user.id)
|
projects = Project.where(user_id: user.id)
|
||||||
|
elsif params[:category].to_s == "watched" #我关注的
|
||||||
|
projects = Project.joins(:watchers).where("watchable_type = ? and user_id = ?", "Project", user.id)
|
||||||
|
elsif params[:category].to_s == "forked" #我fork的
|
||||||
|
fork_ids = user.fork_users.select(:id, :fork_project_id).pluck(:fork_project_id)
|
||||||
|
projects = Project.where(id: fork_ids)
|
||||||
else
|
else
|
||||||
projects = Project.where.not(user_id: user.id).joins(:members).where(members: { user_id: user.id })
|
projects = Project.where.not(user_id: user.id).joins(:members).where(members: { user_id: user.id })
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,8 +3,8 @@ json.extract! @issue, :id,:subject,:description,:is_private,:assigned_to_id,:tra
|
||||||
:start_date,:due_date,:estimated_hours, :issue_type, :token,:issue_classify, :branch_name
|
:start_date,:due_date,:estimated_hours, :issue_type, :token,:issue_classify, :branch_name
|
||||||
json.done_ratio @issue.done_ratio.to_s + "%"
|
json.done_ratio @issue.done_ratio.to_s + "%"
|
||||||
json.issue_tags @issue.get_issue_tags
|
json.issue_tags @issue.get_issue_tags
|
||||||
json.issue_chosen @issue_chosen
|
# json.issue_chosen @issue_chosen
|
||||||
json.branches @all_branches
|
# json.branches @all_branches
|
||||||
json.attachments do
|
json.attachments do
|
||||||
json.array! @issue_attachments do |attachment|
|
json.array! @issue_attachments do |attachment|
|
||||||
json.partial! "attachments/attachment_simple", locals: {attachment: attachment}
|
json.partial! "attachments/attachment_simple", locals: {attachment: attachment}
|
||||||
|
|
|
@ -15,7 +15,7 @@ json.priority @issue.priority.try(:name)
|
||||||
json.version @issue.version.try(:name)
|
json.version @issue.version.try(:name)
|
||||||
json.issue_tags @issue.get_issue_tags
|
json.issue_tags @issue.get_issue_tags
|
||||||
json.done_ratio @issue.done_ratio.to_s + "%"
|
json.done_ratio @issue.done_ratio.to_s + "%"
|
||||||
json.issue_type @issue.issue_type == "1" ? "普通" : "悬赏"
|
json.issue_type @issue.issue_type
|
||||||
json.token @issue.issue_type == "2" ? @issue.token : ""
|
json.token @issue.issue_type == "2" ? @issue.token : ""
|
||||||
json.join_users @join_users
|
json.join_users @join_users
|
||||||
json.cost_time @cost_time_array
|
json.cost_time @cost_time_array
|
||||||
|
|
|
@ -17,6 +17,7 @@ json.branches_count @branches_count
|
||||||
json.commits_count @commits_count
|
json.commits_count @commits_count
|
||||||
json.permission render_edit_project_permission(current_user, @project) if current_user
|
json.permission render_edit_project_permission(current_user, @project) if current_user
|
||||||
json.mirror_url @project&.repository.mirror_url
|
json.mirror_url @project&.repository.mirror_url
|
||||||
|
json.mirror @project&.repository.mirror_url.present?
|
||||||
json.watched current_user&.watched?(@project)
|
json.watched current_user&.watched?(@project)
|
||||||
json.praised current_user&.liked?(@project)
|
json.praised current_user&.liked?(@project)
|
||||||
json.status @project.status
|
json.status @project.status
|
||||||
|
@ -35,6 +36,6 @@ json.clone_url @result['clone_url']
|
||||||
json.default_branch @result['default_branch']
|
json.default_branch @result['default_branch']
|
||||||
json.empty @result['empty']
|
json.empty @result['empty']
|
||||||
json.full_name @result['full_name']
|
json.full_name @result['full_name']
|
||||||
json.mirror @result['mirror']
|
|
||||||
json.private @result['private']
|
json.private @result['private']
|
||||||
json.partial! 'author', locals: { user: @project.owner }
|
json.partial! 'author', locals: { user: @project.owner }
|
||||||
|
|
|
@ -8,7 +8,8 @@ json.brief_introduction @user.user_extension&.brief_introduction
|
||||||
json.professional_certification @user.professional_certification
|
json.professional_certification @user.professional_certification
|
||||||
json.followed User.current.watched?(@user)
|
json.followed User.current.watched?(@user)
|
||||||
json.projects_count @user.projects_count
|
json.projects_count @user.projects_count
|
||||||
|
json.undo_events @undo_events
|
||||||
|
json.user_composes_count @user_composes_count
|
||||||
# json.id @user.id
|
# json.id @user.id
|
||||||
# json.name @user.full_name
|
# json.name @user.full_name
|
||||||
# json.avatar_url url_to_avatar(@user)
|
# json.avatar_url url_to_avatar(@user)
|
||||||
|
|
|
@ -14,6 +14,9 @@ Rails.application.routes.draw do
|
||||||
resources :edu_settings
|
resources :edu_settings
|
||||||
|
|
||||||
scope '/api' do
|
scope '/api' do
|
||||||
|
resources :composes do
|
||||||
|
resources :compose_projects, only: [:create, :destroy]
|
||||||
|
end
|
||||||
resources :attachments do
|
resources :attachments do
|
||||||
collection do
|
collection do
|
||||||
delete :destroy_files
|
delete :destroy_files
|
||||||
|
|
Loading…
Reference in New Issue