|
|
|
@@ -94,7 +94,7 @@ class Issue < ApplicationRecord |
|
|
|
scope :closed, ->{where(status_id: 5)} |
|
|
|
scope :opened, ->{where.not(status_id: 5)} |
|
|
|
after_create :incre_project_common, :incre_user_statistic, :incre_platform_statistic |
|
|
|
after_save :change_versions_count, :send_update_message_to_notice_system |
|
|
|
after_save :change_versions_count, :send_update_message_to_notice_system, :associate_attachment_container |
|
|
|
after_destroy :update_closed_issues_count_in_project!, :decre_project_common, :decre_user_statistic, :decre_platform_statistic |
|
|
|
|
|
|
|
def incre_project_common |
|
|
|
@@ -222,6 +222,18 @@ class Issue < ApplicationRecord |
|
|
|
SendTemplateMessageJob.perform_later('IssueExpire', self.id) if Site.has_notice_menu? && self.due_date == Date.today + 1.days |
|
|
|
end |
|
|
|
|
|
|
|
# 关附件到功能 |
|
|
|
def associate_attachment_container |
|
|
|
att_ids = [] |
|
|
|
# 附件的格式为(/api/attachments/ + 附件id)的形式,提取出id进行附件属性关联,做附件访问权限控制 |
|
|
|
att_ids += self.description.to_s.scan(/\(\/api\/attachments\/.+\)/).map{|s|s.match(/\d+/)[0]} |
|
|
|
att_ids += self.description.to_s.scan(/\/api\/attachments\/.+\"/).map{|s|s.match(/\d+/)[0]} |
|
|
|
att_ids += self.description.to_s.scan(/\/api\/attachments\/\d+/).map{|s|s.match(/\d+/)[0]} |
|
|
|
if att_ids.present? |
|
|
|
Attachment.where(id: att_ids).where(container_type: nil).update_all(container_id: self.id, container_type: self.class.name) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
def to_builder |
|
|
|
Jbuilder.new do |issue| |
|
|
|
issue.(self, :id, :project_issues_index, :subject, :description, :branch_name, :start_date, :due_date) |
|
|
|
|