37 lines
783 B
Ruby
37 lines
783 B
Ruby
module Card::Triageable
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
belongs_to :column, optional: true, touch: true
|
|
|
|
scope :awaiting_triage, -> { active.where.missing(:column) }
|
|
scope :triaged, -> { active.joins(:column) }
|
|
end
|
|
|
|
def triaged?
|
|
active? && column.present?
|
|
end
|
|
|
|
def awaiting_triage?
|
|
active? && !triaged?
|
|
end
|
|
|
|
def triage_into(column)
|
|
raise "The column must belong to the card board" unless board == column.board
|
|
|
|
transaction do
|
|
resume
|
|
update! column: column
|
|
track_event "triaged", particulars: { column: column.name }
|
|
end
|
|
end
|
|
|
|
def send_back_to_triage(skip_event: false)
|
|
transaction do
|
|
resume
|
|
update! column: nil
|
|
track_event "sent_back_to_triage" unless skip_event
|
|
end
|
|
end
|
|
end
|