Method: Group#notification_settings
- Defined in:
- app/models/group.rb
#notification_settings(hierarchy_order: nil) ⇒ Object
Overrides notification_settings has_many association This allows to apply notification settings from parent groups to child groups and projects.
608 609 610 611 612 613 614 615 616 617 618 |
# File 'app/models/group.rb', line 608 def notification_settings(hierarchy_order: nil) source_type = self.class.base_class.name settings = NotificationSetting.where(source_type: source_type, source_id: self_and_ancestors_ids) return settings unless hierarchy_order && self_and_ancestors_ids.length > 1 settings .joins("LEFT JOIN (#{self_and_ancestors(hierarchy_order: hierarchy_order).to_sql}) AS ordered_groups ON notification_settings.source_id = ordered_groups.id") .select('notification_settings.*, ordered_groups.depth AS depth') .order("ordered_groups.depth #{hierarchy_order}") end |