37 lines
841 B
Ruby
37 lines
841 B
Ruby
class Member < ApplicationRecord
|
|
# Include default devise modules. Others available are:
|
|
# , :lockable, :timeoutable, :trackable and :omniauthable
|
|
devise :database_authenticatable, :registerable,:confirmable,
|
|
:recoverable, :rememberable, :validatable
|
|
|
|
mount_uploader :picture, PictureUploader
|
|
|
|
has_many :entities
|
|
has_many :profiles
|
|
|
|
Profile.kinds.each do |kind|
|
|
define_method :"#{kind}_profile" do
|
|
Profile.where( member_id: self.id).where(kind: kind).first
|
|
end
|
|
end
|
|
|
|
def profile( kind )
|
|
Profile.where( member_id: self.id).where(kind: kind).first
|
|
end
|
|
|
|
def teacher
|
|
profile( :teacher )
|
|
end
|
|
|
|
def future_events
|
|
teacher = profile( :teacher )
|
|
return [] unless teacher
|
|
teacher.future_events
|
|
end
|
|
|
|
def admin?
|
|
email == "torsten@villataika.fi"
|
|
end
|
|
alias :admin :admin?
|
|
end
|