12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- class Group < ApplicationRecord
-
-
-
- has_many :members,
- dependent: :destroy
- has_many :people, through: :members
- has_many :activities,
- dependent: :destroy
- has_many :default_subgroups,
- dependent: :destroy
- validates :name,
- presence: true,
- uniqueness: {
- case_sensitive: false
- }
-
- def leaders
- self.members.includes(:person).where(is_leader: true)
- end
-
- def future_activities
- self.activities.where('start > ?', DateTime.now)
- end
-
- def is_member?(person)
- Member.exists?(
- person: person,
- group: self
- ) || person.is_admin?
- end
-
- def is_leader?(person)
- Member.exists?(
- person: person,
- group: self,
- is_leader: true
- ) || person.is_admin?
- end
- end
|