Sha256: 23dc9b0440f9ce3ff5bcf8adc0c7db8c984e342d92311db4218d084399e979ac
Contents?: true
Size: 1.73 KB
Versions: 2
Compression:
Stored size: 1.73 KB
Contents
class Member < ActiveRecord::Base include Ext::DeviseConfiguration include Ext::Integrations::Member has_many :memberships belongs_to :organization belongs_to :person validates :organization, :presence => true validates :member_number, :presence => true before_create :set_member_number # # devise_invitable needs this otherwise it can't set the :from param in an email # def headers_for(action) case action.to_s when "invitation_instructions" {:from => self.organization.email} else {} end end def self.generate_password Devise.friendly_token end def active_memberships memberships.select{ |m| m.starts_at < DateTime.now && m.ends_at > DateTime.now } end def set_member_number self.member_number = MemberNumberGenerator.next_number_for(self.organization) end # Setup accessible (or protected) attributes for your model attr_accessible :email, :password, :password_confirmation, :remember_me def active_for_authentication? super && !suspended? end def self.find_by_membership(membership) Member.find_by_email_and_organization_id(membership.item.order.person.email, membership.organization) #TODO: Biggest join ever end # # * Creates (and invites) a member for this membership if one does not already exist # * Attaches that member to the applicable person # def self.for(membership) member = Member.find_by_membership(membership) if member.nil? member = Member.new({:email => membership.item.order.person.email}) member.organization = membership.item.order.organization member.person = membership.item.order.person member.invite! end membership.member = member membership.save member end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
artfully_ose-1.2.0.pre.5 | app/models/member.rb |
artfully_ose-1.2.0.pre.4 | app/models/member.rb |