class Document

Esta es la super clase para Noticias, Eventos y Páginas de la web. Dicho de otra forma News, Event y Page son subclases de Document y comparten la tabla documents

Attributes

delete_cover_photo[R]
tag_list_without_areas[RW]
total_rating[RW]

Public Instance Methods

approved?()
Alias for: published?
class_name() click to toggle source

Usamos este método cuando necesitamos el nombre de la clase “principal” no el del tipo específico del documento. Por ejemplo: News.first.class.to_s devuelve News News.first.class_name devuelve Document Se usa en algunos partials compartidos entre documentos y debates (por ejemplo en attachments y traducciones).

# File app/models/document.rb, line 150
def class_name
  "Document"
end
delete_cover_photo=(value) click to toggle source

Accessor para borrar la foto de portada

# File app/models/document.rb, line 135
def delete_cover_photo=(value)
  self.cover_photo = nil if value.to_i == 1
end
department() click to toggle source

Departamento al que pertenece un documento. Solo para noticias y eventos

# File app/models/document.rb, line 105
def department
  dept = nil
  if self.organization
    dept = self.organization.root
  end
  dept
end
has_cover_photo?() click to toggle source
# File app/models/document.rb, line 129
def has_cover_photo?
  self.cover_photo_file_name.present?
end
is_private?() click to toggle source
# File app/models/document.rb, line 53
def is_private?
  self.published_at.nil?
end
is_public?() click to toggle source
# File app/models/document.rb, line 57
def is_public?
  !self.is_private?
end
past?() click to toggle source

Fin de los métodos para compatibilidad con los demás contenidos principales

# File app/models/document.rb, line 125
def past?
  self.published_at <= 2.days.ago
end
pretty_body(lang_code=I18n.locale) click to toggle source

Quita del cuerpo del documento el separador de la entradilla ###

# File app/models/document.rb, line 98
def pretty_body(lang_code=I18n.locale)
   send("body_#{lang_code}") ? send("body_#{lang_code}").gsub(/<p.*>###<.*\/p>/, '').gsub(/<p.*>@@@<.*\/p>/, '') : ""
end
published?() click to toggle source

Indica si un documento está publicado

# File app/models/document.rb, line 49
def published?
  !published_at.nil? && published_at <= Time.now
end
Also aliased as: approved?
qr_code_path(locale = I18n.locale) click to toggle source
# File app/models/document.rb, line 113
def qr_code_path(locale = I18n.locale)
  File.join(RAILS_ROOT, "public", qr_code_url(locale))
end
qr_code_url(locale = I18n.locale) click to toggle source
# File app/models/document.rb, line 117
def qr_code_url(locale = I18n.locale)
  File.join("/qr_codes/documents/#{id}","#{locale}.png")
end
translated_to?(lang_code) click to toggle source

Indica si un documento está traducido a lang_code Los idiomas disponibles son Document::LANGUAGES

# File app/models/document.rb, line 93
def translated_to?(lang_code)
  self.send("title_#{lang_code}").present? && self.send("body_#{lang_code}").present?
end

Protected Instance Methods

assign_department_tag() click to toggle source

Asigna el tag del departamento al que pertenece el documento. Se llama desde before_save

# File app/models/document.rb, line 163
def assign_department_tag
  # self.tag_list = self.tag_list - Department.find(:all).map {|dept| dept.tag_name}
  self.tag_list.add(self.department.tag_name) if self.department
end
disable_ratings() click to toggle source

Al principio se podía elegir si las noticias eran puntuables o no, ahora ya no lo es ninguna. Aquí se desactivan las puntuaciones para todas.

# File app/models/document.rb, line 157
def disable_ratings
  self.has_ratings = false
  return true
end