Sha256: 35aab3a0eaffab2cfc47d426bff48db9716bfc2cfc5a92d06b862c14eab2a650

Contents?: true

Size: 798 Bytes

Versions: 10

Compression:

Stored size: 798 Bytes

Contents

#!/usr/bin/ruby -w
class Project < ActiveRecord::Base

  DEFAULT_NAME = 'default'
  DEFAULT_DESCRIPTION = 'Default Project'

  has_many :tasks
  has_many :users, :through => :tasks
  belongs_to :client

  before_validation :set_default_client

  before_create do |project|
    project.active = true if Project.all.length == 0
  end

  def self.default
    find_or_create_by_active true
  end

  def self.current_active?
    where(:active => true).first
  end

  def activate
    deactivate_all
    self.active = true
    self.save
    self
  end

  def deactivate_all
    Project.all.each do |project|
      if project.id != self.id
        project.active = false
        project.save
      end
    end
  end

  def set_default_client
    self.client = Client.default if self.client.nil?
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rtt-0.0.6 lib/models/project.rb
rtt-0.0.5 lib/models/project.rb
rtt-0.0.4 lib/models/project.rb
rtt-0.0.3 lib/models/project.rb
rtt-0.0.0.53 lib/models/project.rb
rtt-0.0.0.52 lib/models/project.rb
rtt-0.0.0.51 lib/models/project.rb
rtt-0.0.0.50 lib/models/project.rb
rtt-0.0.0.49 lib/models/project.rb
rtt-0.0.0.48 lib/models/project.rb