Simplify logic using new group notification settings method
This commit is contained in:
parent
03e08ab775
commit
f72383066d
|
@ -156,23 +156,11 @@ class NotificationRecipient
|
|||
# Returns the notification_setting of the lowest group in hierarchy with non global level
|
||||
def closest_non_global_group_notification_settting
|
||||
return unless @group
|
||||
return if indexed_group_notification_settings.empty?
|
||||
|
||||
notification_setting = nil
|
||||
|
||||
@group.self_and_ancestors_ids.each do |id|
|
||||
notification_setting = indexed_group_notification_settings[id]
|
||||
break if notification_setting
|
||||
end
|
||||
|
||||
notification_setting
|
||||
end
|
||||
|
||||
def indexed_group_notification_settings
|
||||
strong_memoize(:indexed_group_notification_settings) do
|
||||
@group.notification_settings.where(user_id: user.id)
|
||||
.where.not(level: NotificationSetting.levels[:global])
|
||||
.index_by(&:source_id)
|
||||
end
|
||||
@group
|
||||
.notification_settings(hierarchy_order: :asc)
|
||||
.where(user: user)
|
||||
.where.not(level: NotificationSetting.levels[:global])
|
||||
.first
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue