2019-08-24 12:06:48 +02:00
|
|
|
class PostStatus < ApplicationRecord
|
2019-09-18 21:00:38 +02:00
|
|
|
after_initialize :set_order_to_last
|
|
|
|
|
|
2019-08-24 12:06:48 +02:00
|
|
|
validates :name, presence: true, uniqueness: true
|
|
|
|
|
validates :color, format: { with: /\A#(?:[0-9a-fA-F]{3}){1,2}\z/ }
|
2019-08-26 18:15:52 +02:00
|
|
|
validates :order, numericality: { only_integer: true, greater_than: 0 }
|
2019-09-09 16:50:33 +02:00
|
|
|
|
|
|
|
|
class << self
|
|
|
|
|
def find_roadmap
|
|
|
|
|
where(show_in_roadmap: true)
|
|
|
|
|
.order(order: :asc)
|
|
|
|
|
end
|
|
|
|
|
end
|
2019-09-18 21:00:38 +02:00
|
|
|
|
|
|
|
|
def set_order_to_last
|
|
|
|
|
return unless new_record?
|
|
|
|
|
return unless order.nil?
|
|
|
|
|
|
|
|
|
|
order_last = PostStatus.maximum(:order) || 0
|
|
|
|
|
self.order = order_last + 1
|
|
|
|
|
end
|
2019-08-24 12:06:48 +02:00
|
|
|
end
|