badge.rb 581 Bytes
class GamificationPlugin::Badge < ActiveRecord::Base

  belongs_to :owner, :polymorphic => true

  has_many :badges_sash, :class_name => 'Merit::BadgesSash'

  attr_accessible :owner, :name, :description, :level, :custom_fields, :title

  serialize :custom_fields

  def threshold
    (custom_fields || {}).fetch(:threshold, '')
  end

  before_destroy :remove_badges

  def remove_badges
    Merit::BadgesSash.where(:badge_id => self.id).destroy_all
  end

  scope :notification_pending, :include => :badges_sash, :conditions => {:badges_sashes => {:notified_user => false}}

end