Files
2025-11-05 13:31:54 +01:00

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