Skip to content

Instantly share code, notes, and snippets.

@c3mediagroup
Created June 6, 2009 07:52
Show Gist options
  • Save c3mediagroup/124764 to your computer and use it in GitHub Desktop.
Save c3mediagroup/124764 to your computer and use it in GitHub Desktop.
# == Schema Information
# Schema version: 20090427120907
#
# Table name: notes
#
# id :integer(4) not null, primary key
# comment :text
# advisor :boolean(1)
# manager :boolean(1)
# executive :boolean(1)
# admin :boolean(1)
# user_id :integer(4)
# notable_id :integer(4)
# notable_type :string(255)
# created_at :datetime
# updated_at :datetime
# lowest_access :integer(4) default(0), not null
#
class Note < ActiveRecord::Base
belongs_to :user
belongs_to :notable, :polymorphic => true
named_scope :find_advisor_level, :conditions => 'advisor = true'
named_scope :find_staff_level, :conditions => 'advisor = true or staff = true'
named_scope :find_manager_level, :conditions => 'advisor = true or staff = or manager = true'
named_scope :find_executive_level, :conditions => 'advisor = true or staff = or manager = true or executive = true'
named_scope :find_admin_level, :conditions => 'advisor = true or staff = or manager = true or executive = true or admin = true'
named_scope :for_access_level, lambda{|level| {:conditions => "#{level} = true"} }
# protects_the_innocent :comment=>:text
validates_presence_of :comment
def access_level
return 'advisor' if advisor
return 'staff' if staff
return 'manager' if manager
return 'executive' if executive
return 'admin' if admin
'none'
end
def access_level=(level)
self.advisor = self.staff = self.manager = self.executive = self.admin = false
case level
when 'admin': self.admin = true
when 'executive': self.admin = self.executive = true
when 'manager': self.admin = self.executive = self.manager = true
when 'staff': self.admin = self.executive = self.manager = self.staff = true
when 'advisor': self.admin = self.executive = self.manager = self.staff = self.advisor = true
end
end
def date
created_at.strftime('%b %d, %Y %I:%M%P')
end
def set_lowest_access
return self.lowest_access = 1 if self.advisor
return self.lowest_access = 2 if self.staff
return self.lowest_access = 3 if self.manager
return self.lowest_access = 4 if self.executive
return self.lowest_access = 5 if self.admin
return self.lowest_access = 0
end
def self.set_all_lowest_access
Note.find(:all).each do |note|
note.set_lowest_access
note.save
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment