Sha256: e5958c0d8c6a1e999b59242ba9c96d706d7e9ee47df0648c63839032a0b50388

Contents?: true

Size: 882 Bytes

Versions: 4

Compression:

Stored size: 882 Bytes

Contents

module Droom
  class GroupInvitation < ActiveRecord::Base
    attr_accessible :event_id, :group_id
    
    belongs_to :created_by, :class_name => "User"
    belongs_to :group
    belongs_to :event
    has_many :invitations, :dependent => :destroy
    after_save :create_personal_invitations
    validates_uniqueness_of :group_id, :scope => :event_id
    
    scope :to_event, lambda { |event|
      where("droom_group_invitations.event_id = ?", event.id)
    }
    
    scope :for_group, lambda { |group|
      where("droom_group_invitations.group_id = ?", group.id)
    }
    
    
    def create_personal_invitations
      group.people.each do |person|
        create_personal_invitation_for(person)
      end
    end

    def create_personal_invitation_for(person)
      event.invitations.find_or_create_by_person_id(person.id) if person.member_of?(group)
    end
    
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
droom-0.4.3 app/models/droom/group_invitation.rb
droom-0.4.2 app/models/droom/group_invitation.rb
droom-0.4.1 app/models/droom/group_invitation.rb
droom-0.2.1 app/models/droom/group_invitation.rb