更改:疑修列表开启、关闭数量规则以及排序规则
This commit is contained in:
parent
ed5d12654e
commit
54a85a60fa
|
@ -6,11 +6,11 @@ class Api::V1::IssuesController < Api::V1::BaseController
|
|||
|
||||
def index
|
||||
IssueTag.init_data(@project.id) if @project.issue_tags.size < 10
|
||||
@object_results = Api::V1::Issues::ListService.call(@project, query_params, current_user)
|
||||
@opened_issues_count = @object_results.opened.size
|
||||
@closed_issues_count = @object_results.closed.size
|
||||
@object_result = Api::V1::Issues::ListService.call(@project, query_params, current_user)
|
||||
@opened_issues_count = @object_result[:opened_issues_count]
|
||||
@closed_issues_count = @object_result[:closed_issues_count]
|
||||
|
||||
@issues = kaminari_paginate(@object_results)
|
||||
@issues = kaminari_paginate(@object_result[:data])
|
||||
end
|
||||
|
||||
def create
|
||||
|
|
|
@ -15,4 +15,21 @@
|
|||
|
||||
class IssuePriority < ApplicationRecord
|
||||
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
|
||||
|
|
|
@ -36,7 +36,7 @@ class IssueStatus < ApplicationRecord
|
|||
"6" => "拒绝"
|
||||
}
|
||||
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)
|
||||
else
|
||||
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 :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 :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 :current_user, presence: true
|
||||
|
||||
|
@ -21,7 +21,7 @@ class Api::V1::Issues::ListService < ApplicationService
|
|||
@milestone_id = params[:milestone_id]
|
||||
@assigner_id = params[:assigner_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
|
||||
@current_user = current_user
|
||||
end
|
||||
|
@ -31,7 +31,7 @@ class Api::V1::Issues::ListService < ApplicationService
|
|||
begin
|
||||
issue_query_data
|
||||
|
||||
queried_issues
|
||||
return {data: queried_issues, closed_issues_count: @closed_issues_count, opened_issues_count: @opened_issues_count}
|
||||
rescue
|
||||
raise Error, "服务器错误,请联系系统管理员!"
|
||||
end
|
||||
|
@ -40,6 +40,8 @@ class Api::V1::Issues::ListService < ApplicationService
|
|||
private
|
||||
def issue_query_data
|
||||
issues = @project.issues.issue_issue
|
||||
@closed_issues_count = issues.closed.size
|
||||
@opened_issues_count = issues.opened.size
|
||||
|
||||
case category
|
||||
when 'closed'
|
||||
|
@ -52,11 +54,11 @@ class Api::V1::Issues::ListService < ApplicationService
|
|||
when 'aboutme' # 关于我的
|
||||
issues = issues.joins(:participants, :issue_participants).where(issue_participants: {participant_type: %(authored assigned atme)},users: {id: current_user&.id})
|
||||
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' # 我负责的
|
||||
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' # @我的
|
||||
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
|
||||
|
||||
# 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 = scope.reorder("issues.#{sort_by} #{sort_direction}").distinct
|
||||
scope = scope.reorder("#{sort_by} #{sort_direction}").distinct
|
||||
|
||||
@queried_issues = scope
|
||||
end
|
||||
|
|
|
@ -27,6 +27,7 @@ namespace :upgrade_issue_generate_data do
|
|||
|
||||
task project_init_issue_tags_and_status: :environment do
|
||||
puts "____________fix start________________"
|
||||
IssuePriority.init_data
|
||||
IssueStatus.init_data
|
||||
IssueTag.where(user_id: nil).destroy_all
|
||||
count = 0
|
||||
|
|
Loading…
Reference in New Issue