Class: Group
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Group
- Defined in:
- app/models/group.rb
Overview
A set of Participants.
Instance Method Summary collapse
- #activities_future_by_week(week_number) ⇒ Object
- #activities_past_by_week(week_number) ⇒ Object
- #comments_by_week(week_number) ⇒ Object
- #goals_by_week(week_number) ⇒ Object
- #learning_tasks ⇒ Object
- #likes_by_week(week_number) ⇒ Object
- #logins_by_week(week_number) ⇒ Object
- #non_moderator_memberships ⇒ Object
- #on_the_mind_statements_by_week(week_number) ⇒ Object
- #thoughts_by_week(week_number) ⇒ Object
Instance Method Details
#activities_future_by_week(week_number) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'app/models/group.rb', line 65 def activities_future_by_week(week_number) activities = Arel::Table.new(:activities) non_moderator_memberships.map do |membership| membership .participant .activities .unscheduled_or_in_the_future .where(activities[:start_time] .lt(membership.week_end_day(week_number))) end.map(&:count).sum end |
#activities_past_by_week(week_number) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'app/models/group.rb', line 52 def activities_past_by_week(week_number) activities = Arel::Table.new(:activities) non_moderator_memberships.map do |membership| membership .participant .activities .in_the_past .where(activities[:start_time] .gteq(membership.week_start_day(week_number))) end.map(&:count).sum end |
#comments_by_week(week_number) ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'app/models/group.rb', line 91 def comments_by_week(week_number) = Arel::Table.new(:social_networking_comments) non_moderator_memberships.map do |membership| SocialNetworking::Comment .where(participant: membership.participant) .where([:created_at] .gteq(membership.week_start_day(week_number))) .where([:created_at] .lt(membership.week_end_day(week_number))) end.map(&:count).sum end |
#goals_by_week(week_number) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'app/models/group.rb', line 78 def goals_by_week(week_number) = Arel::Table.new(:social_networking_goals) non_moderator_memberships.map do |membership| SocialNetworking::Goal .where(participant: membership.participant) .where([:created_at] .gteq(membership.week_start_day(week_number))) .where([:created_at] .lt(membership.week_end_day(week_number))) end.map(&:count).sum end |
#learning_tasks ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'app/models/group.rb', line 22 def learning_tasks tasks .joins(:bit_core_content_module) .where( Arel::Table.new(:bit_core_content_modules)[:type] .eq("ContentModules::LessonModule") ) end |
#likes_by_week(week_number) ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'app/models/group.rb', line 118 def likes_by_week(week_number) = Arel::Table.new(:social_networking_likes) non_moderator_memberships.map do |membership| SocialNetworking::Like .where(participant: membership.participant) .where([:created_at] .gteq(membership.week_start_day(week_number))) .where([:created_at] .lt(membership.week_end_day(week_number))) end.map(&:count).sum end |
#logins_by_week(week_number) ⇒ Object
31 32 33 34 35 36 |
# File 'app/models/group.rb', line 31 def logins_by_week(week_number) non_moderator_memberships.map do |membership| membership .logins_by_week(week_number) end.inject(:+) end |
#non_moderator_memberships ⇒ Object
132 133 134 135 |
# File 'app/models/group.rb', line 132 def non_moderator_memberships memberships.joins(:participant) .merge(Participant.not_moderator) end |
#on_the_mind_statements_by_week(week_number) ⇒ Object
104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'app/models/group.rb', line 104 def on_the_mind_statements_by_week(week_number) = Arel::Table.new(:social_networking_on_the_mind_statements) non_moderator_memberships.map do |membership| SocialNetworking::OnTheMindStatement .where(participant: membership.participant) .where([:created_at] .gteq(membership.week_start_day(week_number))) .where([:created_at] .lt(membership.week_end_day(week_number))) end.map(&:count).sum end |
#thoughts_by_week(week_number) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/models/group.rb', line 38 def thoughts_by_week(week_number) thoughts = Arel::Table.new(:thoughts) non_moderator_memberships.map do |membership| membership .participant .thoughts .where(thoughts[:created_at] .gteq(membership.week_start_day(week_number))) .where(thoughts[:created_at] .lt(membership.week_end_day(week_number))) end.map(&:count).sum end |