diff --git a/app/controllers/admin/chapters_controller.rb b/app/controllers/admin/chapters_controller.rb index 094dae0b7..f0f5eee8e 100644 --- a/app/controllers/admin/chapters_controller.rb +++ b/app/controllers/admin/chapters_controller.rb @@ -67,8 +67,15 @@ def set_chapter end def member_emails(chapter, type) - return chapter.send(type).map(&:email).join("\n") if %w[students coaches].include?(type) - - chapter.members.pluck(:email).uniq.join("\n") + members = + case type + when "students" + chapter.students + when "coaches" + chapter.coaches + else + chapter.members + end + members.distinct.pluck(:email).join("\n") end end diff --git a/app/models/chapter.rb b/app/models/chapter.rb index a0fa50de6..fa98ae7b3 100644 --- a/app/models/chapter.rb +++ b/app/models/chapter.rb @@ -34,11 +34,15 @@ def organisers end def students - members.select(&:student?) + Member.joins(:groups) + .merge(Group.students) + .distinct end def coaches - members.select(&:coach?) + Member.joins(:groups) + .merge(Group.coaches) + .distinct end private