community.rb 839 Bytes
require_dependency 'community'

class Community

  SEARCHABLE_SOFTWARE_FIELDS = {
    :name => 1,
    :identifier => 2,
    :nickname => 3
  }

  attr_accessible :visible

  has_one :software_info, :dependent=>:destroy

  def self.create_after_moderation(requestor, attributes = {})
    community = Community.new(attributes)

    if community.environment.enabled?('admin_must_approve_new_communities') &&
      !community.environment.admins.include?(requestor)

      cc = CreateCommunity.create(attributes.merge(:requestor => requestor))
    else
      community = Community.create(attributes)
      community.add_admin(requestor)
    end
    community
  end

  def software?
    return !software_info.nil?
  end

  def deactivate
   self.visible = false
   self.save!
  end

  def activate
   self.visible = true
   self.save!
  end
end