app/models/entities/account.rb in fat_free_crm-0.12.3 vs app/models/entities/account.rb in fat_free_crm-0.13.0
- old
+ new
@@ -41,24 +41,24 @@
serialize :subscribed_users, Set
accepts_nested_attributes_for :billing_address, :allow_destroy => true, :reject_if => proc {|attributes| Address.reject_address(attributes)}
accepts_nested_attributes_for :shipping_address, :allow_destroy => true, :reject_if => proc {|attributes| Address.reject_address(attributes)}
- scope :state, lambda { |filters|
+ scope :state, ->(filters) {
where('category IN (?)' + (filters.delete('other') ? ' OR category IS NULL' : ''), filters)
}
- scope :created_by, lambda { |user| where(:user_id => user.id) }
- scope :assigned_to, lambda { |user| where(:assigned_to => user.id) }
+ scope :created_by, ->(user) { where(:user_id => user.id) }
+ scope :assigned_to, ->(user) { where(:assigned_to => user.id) }
- scope :text_search, lambda { |query| search('name_or_email_cont' => query).result }
+ scope :text_search, ->(query) { search('name_or_email_cont' => query).result }
- scope :visible_on_dashboard, lambda { |user|
+ scope :visible_on_dashboard, ->(user) {
# Show accounts which either belong to the user and are unassigned, or are assigned to the user
where('(user_id = :user_id AND assigned_to IS NULL) OR assigned_to = :user_id', :user_id => user.id)
}
- scope :by_name, order(:name)
+ scope :by_name, -> { order(:name) }
uses_user_permissions
acts_as_commentable
uses_comment_extensions
acts_as_taggable_on :tags
@@ -69,11 +69,14 @@
has_ransackable_associations %w(contacts opportunities tags activities emails addresses comments tasks)
ransack_can_autocomplete
validates_presence_of :name, :message => :missing_account_name
- validates_uniqueness_of :name, :scope => :deleted_at if Setting.require_unique_account_names
+ validates_uniqueness_of :name, :scope => :deleted_at, :if => -> { Setting.require_unique_account_names }
+ validates :rating, :inclusion => { in: 0..5 }, allow_blank: true
+ validates :category, :inclusion => { in: Proc.new{ Setting.unroll(:account_category).map{|s| s.last.to_s} } }, allow_blank: true
validate :users_for_shared_access
+
before_save :nullify_blank_category
# Default values provided through class methods.
#----------------------------------------------------------------------------
def self.per_page ; 20 ; end