Sha256: df92db38e5ffe87260df6d39d287e06453927e7a3f5103e56020bd3dc1ccdec8
Contents?: true
Size: 1.67 KB
Versions: 4
Compression:
Stored size: 1.67 KB
Contents
module Droom class Invitation < ActiveRecord::Base attr_accessible :event_id, :person_id belongs_to :person belongs_to :event belongs_to :group_invitation belongs_to :created_by, :class_name => "User" after_create :link_folder after_destroy :unlink_folder # after_destroy :delete_similar validates_uniqueness_of :person_id, :scope => [:event_id, :group_invitation_id] scope :to_event, lambda { |event| where(["event_id = ?", event.id]) } scope :for_person, lambda { |person| where("droom_invitations.person_id = ?", person.id) } scope :future, lambda { select('droom_invitations.*') .joins('inner join droom_events as de on droom_invitations.event_id = de.id') .where(['de.start > :now', :now => Time.now]) .group('droom_invitations.id') } scope :refused, where("response < 1") scope :accepted, where("response > 1") scope :not_refused, where("response > 0") scope :not_accepted, where("response < 2") scope :responded, where("response <> 1") scope :not_responded, where("response == 1") def link_folder person.add_personal_folders(event.folder) end def unlink_folder person.remove_personal_folders(event.folder) end def status if response < 1 "refused" elsif response == 1 "maybe" else "accepted" end end def accepted? response && response > 1 end def refused? response && response < 1 end protected def delete_similar Droom::Invitation.for_person(person).to_event(event).delete_all end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
droom-0.4.3 | app/models/droom/invitation.rb |
droom-0.4.2 | app/models/droom/invitation.rb |
droom-0.4.1 | app/models/droom/invitation.rb |
droom-0.2.1 | app/models/droom/invitation.rb |