Class Department
In: app/models/department.rb
Parent: Organization

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

Methods

Public Class methods

Devuelve el departamento con la etiqueta indicada.

[Source]

    # File app/models/department.rb, line 20
20:   def self.find_by_label(dept_label)
21:     tag_name = "_"+dept_label.gsub(/[^\w_]/,'')
22:     dept = self.tag_names.include?(tag_name) ? self.find_by_tag_name(tag_name) : nil
23:     dept
24:   end

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], […]]]

[Source]

    # File app/models/department.rb, line 29
29:   def self.grouped_options
30:     opts = []
31:     self.find(:all, :order => "coalesce(internal_id,0)").each do |dept|
32:       opts.push [[dept.name, dept.id], dept.organizations.map {|d| [d.name, d.id]}]
33:     end
34:     opts
35:   end

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

[Source]

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

Public Instance methods

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.

[Source]

    # File app/models/department.rb, line 15
15:   def label
16:     self.tag_name.gsub(/^_+/,'')
17:   end

[Validate]