Files
fetsite/app/models/fetprofile.rb
Andreas Stephanides d3ac7504dc search function
2014-02-08 16:39:56 +01:00

39 lines
1.4 KiB
Ruby

# == Schema Information
#
# Table name: fetprofiles
#
# id :integer not null, primary key
# vorname :string(255)
# nachname :string(255)
# short :string(255)
# fetmailalias :string(255)
# desc :text
# picture :string(255)
# active :boolean
# created_at :datetime not null
# updated_at :datetime not null
#
class Fetprofile < ActiveRecord::Base
attr_accessible :active, :desc, :fetmailalias, :nachname, :picture, :short, :vorname, :memberships_attributes, :remove_picture, :picture_cache
has_many :memberships, dependent: :delete_all
has_many :gremien, :through=> :membership
mount_uploader :picture, PictureUploader
has_paper_trail
validates :desc, :presence=>true
validates :nachname, length:{minimum: 3},:presence=>true
validates :vorname, length:{minimum: 3},:presence=>true
has_many :users
scope :search, ->(query) {where("nachname like ? or vorname like ? or short like ?", "%#{query}%", "%#{query}%", "%#{query}%")}
accepts_nested_attributes_for :memberships, :reject_if=>lambda{|a| a[:typ].blank?|| a[:start].blank? ||a[:gremium_id].blank?}, :allow_destroy=>true
def name
[vorname, nachname, ((short.empty?)? "": ["(",short,")"].join)].join(" ")
end
scope :active, -> { where(:active=>true).order(:vorname) }
def fetmail
(fetmailalias.nil? || fetmailalias.empty?) ? short.to_s + "@fet.at" : fetmailalias.to_s + "@fet.at"
end
end