Module: Model::Department

Extended by:
ActiveSupport::Concern
Included in:
Org::Department
Defined in:
app/models/org/model/department.rb

Instance Method Summary collapse

Instance Method Details

#all_membersObject



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_spanObject



36
37
38
# File 'app/models/org/model/department.rb', line 36

def col_span
  self.class.max_depth - self.depth
end

#full_nameObject



44
45
46
# File 'app/models/org/model/department.rb', line 44

def full_name
  names.join(' > ')
end

#namesObject



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_countObject



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

#supportsObject



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