Skip to content

Commit

Permalink
ensure that default volume preferences apply to new polls (#10907)
Browse files Browse the repository at this point in the history
* ensure that default volume preferences apply to new polls - change the expectation.. set loud get loud
  • Loading branch information
robguthrie committed Jun 15, 2024
1 parent 42d9399 commit 8973d55
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 7 deletions.
2 changes: 1 addition & 1 deletion app/services/discussion_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ def self.add_users(discussion:, actor:, user_ids:, emails:, audience:)
inviter: actor,
guest: !volumes.has_key?(user.id),
admin: !discussion.group_id,
volume: volumes[user.id] || DiscussionReader.volumes[:normal])
volume: volumes[user.id] || user.default_membership_volume)
end

DiscussionReader.import(new_discussion_readers, on_duplicate_key_ignore: true)
Expand Down
5 changes: 1 addition & 4 deletions app/services/poll_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -142,12 +142,10 @@ def self.create_stances(poll:, actor:, user_ids: [], emails: [], audience: nil,
volumes = {}
group_member_ids = (poll.group || NullGroup.new).member_ids

# if the user has chosen to mute the thread or group then mute the poll too, but dont subsribe
if poll.discussion_id
DiscussionReader.active.where(
discussion_id: poll.discussion_id,
user_id: users.pluck(:id),
volume: 1
).find_each do |dr|
volumes[dr.user_id] = dr.volume
end
Expand All @@ -157,7 +155,6 @@ def self.create_stances(poll:, actor:, user_ids: [], emails: [], audience: nil,
Membership.active.where(
group_id: poll.group_id,
user_id: users.pluck(:id),
volume: 1
).find_each do |m|
volumes[m.user_id] = m.volume unless volumes.has_key? m.user_id
end
Expand All @@ -175,7 +172,7 @@ def self.create_stances(poll:, actor:, user_ids: [], emails: [], audience: nil,
poll: poll,
inviter: actor,
guest: !group_member_ids.include?(user.id),
volume: volumes[user.id] || DiscussionReader.volumes[:normal],
volume: volumes[user.id] || user.default_membership_volume,
latest: true,
reason_format: user.default_format,
created_at: Time.zone.now
Expand Down
4 changes: 2 additions & 2 deletions spec/services/poll_service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,10 @@
expect(Stance.where(participant_id: member.id).first.volume).to eq 'quiet'
end

it 'uses normal volume if discussion reader loud' do
it 'uses load volume if discussion reader loud' do
DiscussionReader.create(user_id: member.id, discussion_id: discussion.id, volume: 'loud')
PollService.create_stances(poll: poll, actor: actor, user_ids: [member.id])
expect(Stance.where(participant_id: member.id).first.volume).to eq 'normal'
expect(Stance.where(participant_id: member.id).first.volume).to eq 'loud'
end

it 'uses membership volume if quiet' do
Expand Down

0 comments on commit 8973d55

Please sign in to comment.