class Department

Clase para los departamentos en los que se pueden clasificar los News y Events. Es subclase de Organization, por lo que su tabla es organizations

Constants

TERMS

Legislaturas: se usan para poder separar los departamentos por legislatura Las entidades no tienen asignada ninguna legislatura

Public Class Methods

find_by_label(dept_label) click to toggle source

Devuelve el departamento con la etiqueta indicada.

# File app/models/department.rb, line 58
def self.find_by_label(dept_label)
  tag_name = "_"+dept_label.gsub(/[^\w_]/,'')
  dept = self.tag_names.include?(tag_name) ? self.find_by_tag_name(tag_name) : nil
  dept
end
grouped_options() click to toggle source

Array de departamentos en formato óptimo para hacer un select en un view. El formato del output es [[[dep.nombre, dep.id], [[subdep1.nombre, subdep1.id], [subdep2.nombre, subdep2.id]...]], [[dep2.nombre, dep2.id], [...]]]

# File app/models/department.rb, line 67
def self.grouped_options
  opts = []
  self.find(:all, :order => "term, position").each do |dept|
    opts.push [[dept.name, dept.id], dept.organizations.map {|d| [d.name, d.id]}]
  end
  opts
end
tag_names() click to toggle source

Cada departamento tiene asociado un tag oculto que se añade automáticamente

# File app/models/department.rb, line 47
def self.tag_names
  self.find(:all, :select => "tag_name").map {|d| d.tag_name}
end

Public Instance Methods

department_editors() click to toggle source
# File app/models/department.rb, line 81
def department_editors
  self.members.approved.find(:all, :conditions => "type='DepartmentEditor'")
end
department_members_official_commenters() click to toggle source
# File app/models/department.rb, line 85
def department_members_official_commenters
  self.members.approved.find(:all, :conditions => "type='DepartmentMember'").select {|u| u.is_official_commenter?}
end
label() click to toggle source

La etiqueta del departamento es su tag oculto sin el ‘_’ al principio. Se usa en las URL de acciones que muestran contentido sólo para un departamento.

# File app/models/department.rb, line 53
def label
  self.tag_name.gsub(/^_+/,'')
end
official_commenters() click to toggle source
# File app/models/department.rb, line 75
def official_commenters
  candidates = self.members.approved
  list = candidates.select {|u| u.is_official_commenter?}
  list
end