73 lines
1.6 KiB
Ruby
73 lines
1.6 KiB
Ruby
# == Schema Information
|
|
#
|
|
# Table name: issue_statuses
|
|
#
|
|
# id :integer not null, primary key
|
|
# name :string(30) default(""), not null
|
|
# is_closed :boolean default("0"), not null
|
|
# is_default :boolean default("0"), not null
|
|
# position :integer default("1")
|
|
# default_done_ratio :integer
|
|
#
|
|
# Indexes
|
|
#
|
|
# index_issue_statuses_on_is_closed (is_closed)
|
|
# index_issue_statuses_on_is_default (is_default)
|
|
# index_issue_statuses_on_position (position)
|
|
#
|
|
|
|
class IssueStatus < ApplicationRecord
|
|
ADD = 1
|
|
SOLVING = 2
|
|
SOLVED = 3
|
|
# FEEDBACK = 4
|
|
CLOSED = 5
|
|
REJECTED = 6
|
|
|
|
has_many :issues
|
|
belongs_to :project, optional: true
|
|
|
|
def self.init_data
|
|
map = {
|
|
"1" => "新增",
|
|
"2" => "正在解决",
|
|
"3" => "已解决",
|
|
"5" => "关闭",
|
|
"6" => "拒绝"
|
|
}
|
|
IssueStatus.order(id: :asc).each do |stat|
|
|
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)}
|
|
stat.destroy!
|
|
end
|
|
end
|
|
end
|
|
|
|
def to_builder
|
|
Jbuilder.new do |status|
|
|
status.(self, :id, :name)
|
|
end
|
|
end
|
|
|
|
def pm_color
|
|
case name
|
|
when '新增'
|
|
'#ff6f00'
|
|
when '正在解决'
|
|
'#0d5ef8'
|
|
when '已解决'
|
|
'#13b33e'
|
|
when '关闭'
|
|
'#b1aaa5'
|
|
# when '反馈'
|
|
# '#13c2c2'
|
|
when '拒绝'
|
|
'#ff0000'
|
|
else
|
|
'#ff6f00'
|
|
end
|
|
end
|
|
end
|