ask/app/models/ask_ticket_status.rb

42 lines
1.5 KiB
Ruby

class AskTicketStatus
include Mongoid::Document
include Mongoid::Timestamps
DefaultKeys = ["is_waiting", "is_processed", "is_referral", "is_published"]
field :title, type: String, localize: true
field :is_default, type: Boolean, default: false # if true => cannot delete
field :key, type: String
before_create do
if self.key.blank?
can_update_shared_hash = (defined?(OrbitHelper::SharedHash) && OrbitHelper::SharedHash)
last_ticket_key = can_update_shared_hash ? OrbitHelper::SharedHash["ask"][:last_ticket_key] : AskSetting.pluck(:last_ticket_key)[0].to_i
self.key = last_ticket_key.to_s
AskSetting.all.inc({'last_ticket_key'=>1})
if can_update_shared_hash
OrbitHelper::SharedHash["ask"][:last_ticket_key] = last_ticket_key + 1
end
end
true
end
after_destroy do
# can_update_shared_hash = (defined?(OrbitHelper::SharedHash) && OrbitHelper::SharedHash)
# AskSetting.all.inc({'last_ticket_key'=>-1})
# if can_update_shared_hash
# OrbitHelper::SharedHash["ask"][:last_ticket_key] = OrbitHelper::SharedHash["ask"][:last_ticket_key] - 1
# end
end
def title
tmp = super
if self.is_default
tmp = I18n.t("ask.#{self.key}") if tmp.blank?
end
tmp
end
def get_title_translations(locales=nil)
locales = I18n.available_locales if locales.nil?
trans = {}
locales.each do |locale|
trans[locale] = I18n.with_locale(locale){self.title}
end
trans
end
end