更改:疑修列表开启、关闭数量规则以及排序规则
This commit is contained in:
parent
ed5d12654e
commit
54a85a60fa
|
@ -6,11 +6,11 @@ class Api::V1::IssuesController < Api::V1::BaseController
|
||||||
|
|
||||||
def index
|
def index
|
||||||
IssueTag.init_data(@project.id) if @project.issue_tags.size < 10
|
IssueTag.init_data(@project.id) if @project.issue_tags.size < 10
|
||||||
@object_results = Api::V1::Issues::ListService.call(@project, query_params, current_user)
|
@object_result = Api::V1::Issues::ListService.call(@project, query_params, current_user)
|
||||||
@opened_issues_count = @object_results.opened.size
|
@opened_issues_count = @object_result[:opened_issues_count]
|
||||||
@closed_issues_count = @object_results.closed.size
|
@closed_issues_count = @object_result[:closed_issues_count]
|
||||||
|
|
||||||
@issues = kaminari_paginate(@object_results)
|
@issues = kaminari_paginate(@object_result[:data])
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
|
|
|
@ -15,4 +15,21 @@
|
||||||
|
|
||||||
class IssuePriority < ApplicationRecord
|
class IssuePriority < ApplicationRecord
|
||||||
has_many :issues
|
has_many :issues
|
||||||
|
|
||||||
|
def self.init_data
|
||||||
|
map = {
|
||||||
|
"1" => "低",
|
||||||
|
"2" => "正常",
|
||||||
|
"3" => "高",
|
||||||
|
"4" => "紧急"
|
||||||
|
}
|
||||||
|
IssuePriority.order(id: :asc).each do |prty|
|
||||||
|
if map["#{prty.id}"] == prty.name
|
||||||
|
IssuePriority.find_or_create_by(id: prty.id, name: prty.name)
|
||||||
|
else
|
||||||
|
Issue.where(priority_id: prty.id).each{|i| i.update_column(:priority_id, 2)}
|
||||||
|
prty.destroy!
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -36,7 +36,7 @@ class IssueStatus < ApplicationRecord
|
||||||
"6" => "拒绝"
|
"6" => "拒绝"
|
||||||
}
|
}
|
||||||
IssueStatus.order(id: :asc).each do |stat|
|
IssueStatus.order(id: :asc).each do |stat|
|
||||||
if map[stat.id] == stat.name
|
if map["#{stat.id}"] == stat.name
|
||||||
IssueStatus.find_or_create_by(id: stat.id, name: stat.name)
|
IssueStatus.find_or_create_by(id: stat.id, name: stat.name)
|
||||||
else
|
else
|
||||||
Issue.where(status_id: stat.id).each{|i| i.update_column(:status_id, 1)}
|
Issue.where(status_id: stat.id).each{|i| i.update_column(:status_id, 1)}
|
||||||
|
|
|
@ -3,11 +3,11 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
|
|
||||||
attr_reader :project, :category, :participant_category, :keyword, :author_id, :issue_tag_ids
|
attr_reader :project, :category, :participant_category, :keyword, :author_id, :issue_tag_ids
|
||||||
attr_reader :milestone_id, :assigner_id, :status_id, :sort_by, :sort_direction, :current_user
|
attr_reader :milestone_id, :assigner_id, :status_id, :sort_by, :sort_direction, :current_user
|
||||||
attr_accessor :queried_issues
|
attr_accessor :queried_issues, :closed_issues_count, :opened_issues_count
|
||||||
|
|
||||||
validates :category, inclusion: {in: %w(all opened closed), message: "请输入正确的Category"}
|
validates :category, inclusion: {in: %w(all opened closed), message: "请输入正确的Category"}
|
||||||
validates :participant_category, inclusion: {in: %w(all aboutme authoredme assignedme atme), message: "请输入正确的ParticipantCategory"}
|
validates :participant_category, inclusion: {in: %w(all aboutme authoredme assignedme atme), message: "请输入正确的ParticipantCategory"}
|
||||||
validates :sort_by, inclusion: {in: Issue.column_names, message: '请输入正确的SortBy'}, allow_blank: true
|
validates :sort_by, inclusion: {in: ['issues.created_on', 'issues.updated_on', 'issue_priorities.position'], message: '请输入正确的SortBy'}, allow_blank: true
|
||||||
validates :sort_direction, inclusion: {in: %w(asc desc), message: '请输入正确的SortDirection'}, allow_blank: true
|
validates :sort_direction, inclusion: {in: %w(asc desc), message: '请输入正确的SortDirection'}, allow_blank: true
|
||||||
validates :current_user, presence: true
|
validates :current_user, presence: true
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
@milestone_id = params[:milestone_id]
|
@milestone_id = params[:milestone_id]
|
||||||
@assigner_id = params[:assigner_id]
|
@assigner_id = params[:assigner_id]
|
||||||
@status_id = params[:status_id]
|
@status_id = params[:status_id]
|
||||||
@sort_by = params[:sort_by].present? ? params[:sort_by] : 'updated_on'
|
@sort_by = params[:sort_by].present? ? params[:sort_by] : 'issues.updated_on'
|
||||||
@sort_direction = (params[:sort_direction].present? ? params[:sort_direction] : 'desc').downcase
|
@sort_direction = (params[:sort_direction].present? ? params[:sort_direction] : 'desc').downcase
|
||||||
@current_user = current_user
|
@current_user = current_user
|
||||||
end
|
end
|
||||||
|
@ -31,7 +31,7 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
begin
|
begin
|
||||||
issue_query_data
|
issue_query_data
|
||||||
|
|
||||||
queried_issues
|
return {data: queried_issues, closed_issues_count: @closed_issues_count, opened_issues_count: @opened_issues_count}
|
||||||
rescue
|
rescue
|
||||||
raise Error, "服务器错误,请联系系统管理员!"
|
raise Error, "服务器错误,请联系系统管理员!"
|
||||||
end
|
end
|
||||||
|
@ -40,6 +40,8 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
private
|
private
|
||||||
def issue_query_data
|
def issue_query_data
|
||||||
issues = @project.issues.issue_issue
|
issues = @project.issues.issue_issue
|
||||||
|
@closed_issues_count = issues.closed.size
|
||||||
|
@opened_issues_count = issues.opened.size
|
||||||
|
|
||||||
case category
|
case category
|
||||||
when 'closed'
|
when 'closed'
|
||||||
|
@ -52,11 +54,11 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
when 'aboutme' # 关于我的
|
when 'aboutme' # 关于我的
|
||||||
issues = issues.joins(:participants, :issue_participants).where(issue_participants: {participant_type: %(authored assigned atme)},users: {id: current_user&.id})
|
issues = issues.joins(:participants, :issue_participants).where(issue_participants: {participant_type: %(authored assigned atme)},users: {id: current_user&.id})
|
||||||
when 'authoredme' # 我创建的
|
when 'authoredme' # 我创建的
|
||||||
issues = issues.joins(:participants, :issue_participants).where(issue_participants: {participant_type: %(authored)},users: {id: current_user&.id})
|
issues = issues.joins(:participants, :issue_participants).where(issue_participants: {participant_type: 'assigned'},users: {id: current_user&.id})
|
||||||
when 'assignedme' # 我负责的
|
when 'assignedme' # 我负责的
|
||||||
issues = issues.joins(:participants, :issue_participants).where(issue_participants: {participant_type: %(assigned)},users: {id: current_user&.id})
|
issues = issues.joins(:participants, :issue_participants).where(issue_participants: {participant_type: 'assigned'},users: {id: current_user&.id})
|
||||||
when 'atme' # @我的
|
when 'atme' # @我的
|
||||||
issues = issues.joins(:participants, :issue_participants).where(issue_participants: {participant_type: %(atme)},users: {id: current_user&.id})
|
issues = issues.joins(:participants, :issue_participants).where(issue_participants: {participant_type: 'atme'},users: {id: current_user&.id})
|
||||||
end
|
end
|
||||||
|
|
||||||
# author_id
|
# author_id
|
||||||
|
@ -79,7 +81,7 @@ class Api::V1::Issues::ListService < ApplicationService
|
||||||
|
|
||||||
scope = q.result.includes(:priority, :issue_status, :user, :assigners, :version, :issue_tags, :comment_journals)
|
scope = q.result.includes(:priority, :issue_status, :user, :assigners, :version, :issue_tags, :comment_journals)
|
||||||
|
|
||||||
scope = scope.reorder("issues.#{sort_by} #{sort_direction}").distinct
|
scope = scope.reorder("#{sort_by} #{sort_direction}").distinct
|
||||||
|
|
||||||
@queried_issues = scope
|
@queried_issues = scope
|
||||||
end
|
end
|
||||||
|
|
|
@ -27,6 +27,7 @@ namespace :upgrade_issue_generate_data do
|
||||||
|
|
||||||
task project_init_issue_tags_and_status: :environment do
|
task project_init_issue_tags_and_status: :environment do
|
||||||
puts "____________fix start________________"
|
puts "____________fix start________________"
|
||||||
|
IssuePriority.init_data
|
||||||
IssueStatus.init_data
|
IssueStatus.init_data
|
||||||
IssueTag.where(user_id: nil).destroy_all
|
IssueTag.where(user_id: nil).destroy_all
|
||||||
count = 0
|
count = 0
|
||||||
|
|
Loading…
Reference in New Issue