Sha256: 4ad09bc32f0f9c6d47a0bf41e40648f4fbfe3f0a56318c22694b4189630c073f

Contents?: true

Size: 1.01 KB

Versions: 35

Compression:

Stored size: 1.01 KB

Contents

class ProviderGroup < ActiveRecord::Base
  include Redis::Objects

  mount_uploader :icon, IconUploader

  after_save do
    TerminalProfile.invalidate_all_cached_providers!
  end

  after_destroy do
    TerminalProfile.invalidate_all_cached_providers!
  end

  belongs_to :provider_group
  has_many :provider_groups, :order => :title
  has_many :providers
  has_many :terminal_profile_provider_groups, :dependent => :destroy

  accepts_nested_attributes_for :providers

  validates :title, :presence => true

  def self.tree(exclude=nil)
    result = {}

    inject = lambda{|result, exclude, entry, level|
      unless entry == exclude
        result["#{'--'*level}#{' ' if level > 0}#{entry.title}"] = entry.id

        entry.provider_groups.each do |x|
          inject.call(result, exclude, x, level+1)
        end
      end
    }

    ProviderGroup.where(:provider_group_id => nil).order(:title).
      select{|x| x.provider_group.blank?}.each do |x|
        inject.call(result, exclude, x, 0)
      end

    result
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
smartkiosk-server-0.13.1 app/models/provider_group.rb
smartkiosk-server-0.13 app/models/provider_group.rb
smartkiosk-server-0.12.1 app/models/provider_group.rb
smartkiosk-server-0.12 app/models/provider_group.rb
smartkiosk-server-0.11.11 app/models/provider_group.rb
smartkiosk-server-0.11.10 app/models/provider_group.rb
smartkiosk-server-0.11.9 app/models/provider_group.rb
smartkiosk-server-0.11.8 app/models/provider_group.rb
smartkiosk-server-0.11.7 app/models/provider_group.rb
smartkiosk-server-0.11.6 app/models/provider_group.rb
smartkiosk-server-0.11.5 app/models/provider_group.rb
smartkiosk-server-0.11.4 app/models/provider_group.rb
smartkiosk-server-0.11.3 app/models/provider_group.rb
smartkiosk-server-0.11.2 app/models/provider_group.rb
smartkiosk-server-0.11.1 app/models/provider_group.rb
smartkiosk-server-0.11 app/models/provider_group.rb
smartkiosk-server-0.10.19 app/models/provider_group.rb
smartkiosk-server-0.10.18 app/models/provider_group.rb
smartkiosk-server-0.10.17 app/models/provider_group.rb
smartkiosk-server-0.10.16 app/models/provider_group.rb