Module: Model::Department
- Extended by:
- ActiveSupport::Concern
- Included in:
- Org::Department
- Defined in:
- app/models/org/model/department.rb
Instance Method Summary collapse
- #all_members ⇒ Object
- #col_span ⇒ Object
- #full_name ⇒ Object
- #names ⇒ Object
- #reset_all_member_departments_count ⇒ Object
- #supports ⇒ Object
Instance Method Details
#all_members ⇒ Object
31 32 33 34 |
# File 'app/models/org/model/department.rb', line 31 def all_members ids = MemberDepartment.default_where(department_id: self.self_and_descendant_ids).pluck(:member_id) Member.where(id: ids) end |
#col_span ⇒ Object
36 37 38 |
# File 'app/models/org/model/department.rb', line 36 def col_span self.class.max_depth - self.depth end |
#full_name ⇒ Object
44 45 46 |
# File 'app/models/org/model/department.rb', line 44 def full_name names.join(' > ') end |
#names ⇒ Object
40 41 42 |
# File 'app/models/org/model/department.rb', line 40 def names self_and_ancestors.pluck(:name).reverse end |
#reset_all_member_departments_count ⇒ Object
56 57 58 |
# File 'app/models/org/model/department.rb', line 56 def reset_all_member_departments_count update(all_member_departments_count: self_and_descendants.sum(:member_departments_count)) end |
#supports ⇒ Object
48 49 50 51 52 53 54 |
# File 'app/models/org/model/department.rb', line 48 def supports return @supports if @supports results = Support.where(department_id: self.self_and_ancestor_ids).group_by { |i| i.kind } @supports = results.map do |_, records| records.sort_by! { |i| self.self_and_ancestor_ids.index(i.department_id) }.first end end |