Sha256: 51fb2ff7ea6def52439163670cd35e8940e3f22951489551245efc1496282adc

Contents?: true

Size: 925 Bytes

Versions: 3

Compression:

Stored size: 925 Bytes

Contents

module Gluttonberg
  # This model is used for grouping in membership system. 
  # Members can be grouped, CMS pages can be grouped
  class Group < ActiveRecord::Base
    self.table_name = "gb_groups"

    is_drag_tree :flat => true , :order => "position"
    
    has_and_belongs_to_many :members, :class_name => "Member" , :join_table => "gb_groups_members"
    has_and_belongs_to_many :pages, :class_name => "Gluttonberg::Page" , :join_table => "gb_groups_pages"

    attr_accessible :name, :default, :position

    # Included mixins which are registered by host app for extending functionality
    MixinManager.load_mixins(self)

    def self.default_group
      self.where(:default =>  true).first
    end

    # find group if not exists it makes new one
    def self.ensure_exists(name)
      cat = where(:name => name).first
      if cat.blank?
        cat = create(:name => name)
      end
      cat
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gluttonberg-core-3.0.2 app/models/gluttonberg/group.rb
gluttonberg-core-3.0.1 app/models/gluttonberg/group.rb
gluttonberg-core-3.0.0 app/models/gluttonberg/group.rb