class Debate

OpenIrekia v4.0.0

Copyright 2009-2013 eFaber, S.L. Copyright 2009-2013 Ejie, S.A. Copyrigth 2009-2013 Dirección de Gobierno Abierto y Comunicación en Internet;

Gobernu Irekirako eta Interneteko Komunikaziorako Zuzendaritza; Lehendakaritza.
Gobierno Vasco – Eusko Jaurlaritza

Licencia con arreglo a la EUPL, Versión 1.1 o –en cuanto sean aprobadas por la Comisión Europea– versiones posteriores de la EUPL (la Licencia); Solo podrá usarse esta obra si se respeta la Licencia. Puede obtenerse una copia de la Licencia en: ec.europa.eu/idabc/eupl Salvo cuando lo exija la legislación aplicable o se acuerde por escrito, el programa distribuido con arreglo a la Licencia se distribuye TAL CUAL, SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ni expresas ni implícitas. Véase la Licencia en el idioma concreto que rige los permisos y limitaciones que establece la Licencia

http://open.irekia.net, openirekia@efaber.net

Public Instance Methods

approved_headlines() click to toggle source
# File app/models/debate.rb, line 191
def approved_headlines     
  Headline.published.translated.tagged_with(self.hashtag).find(:all, :limit => 10)
end
author() click to toggle source
# File app/models/debate.rb, line 207
def author
  self.organization
end
author_name() click to toggle source
# File app/models/debate.rb, line 211
def author_name
  self.author.name
end
class_name() click to toggle source

Para compatibilidad con los documentos. Nos permite compartir partials ente Document y Debate (por ejemplo el de attachments y el de traducciones)

# File app/models/debate.rb, line 231
def class_name
  self.class.to_s
end
comments_closed?() click to toggle source
# File app/models/debate.rb, line 203
def comments_closed?
  !self.stages.find_by_label('discussion').is_current?
end
current_stage() click to toggle source

Devuelve el estado actual como objeto DebateStage

# File app/models/debate.rb, line 149
def current_stage
  current = if self.published?
    if self.future?
      # Todavía no ha llegado la fecha de la presentación
      self.stages.first
    elsif  self.finished?
      self.stages.last
    else
      this=self.stages.detect {|s| s.starts_on <= Date.today && s.ends_on >= Date.today}
      if this.nil?
        self.stages.detect {|s| s.starts_on <= Date.today || s.ends_on >= Date.today}
      end
      this
    end
  else
    self.stages.first
  end
  current
end
finished?() click to toggle source

Devuelve true si ya ha acabado la última fase

# File app/models/debate.rb, line 144
def finished?
  self.stages.last.ends_on < Date.today
end
future?() click to toggle source

Devuelve true si la fecha de inicio de la primera fase es futura

# File app/models/debate.rb, line 139
def future?
  self.stages.first.starts_on > Date.today
end
has_comments() click to toggle source

Para compatibilidad con las propuestas ciudadanas (se usan cuando se muestra la información sobre un vote) 2DO

# File app/models/debate.rb, line 198
def has_comments
  true
end
Also aliased as: has_comments?
has_comments?()
Alias for: has_comments
has_cover_photo?() click to toggle source

Indica si hay foto de portada. Sólo se usa en caso de que no haya video de portada Para compatibilidad con Document (se usa en Tools::Multimedia)

# File app/models/debate.rb, line 129
def has_cover_photo?
  self.cover_image.present?
end
init_stages() click to toggle source
# File app/models/debate.rb, line 103
def init_stages
  if self.stages.empty?
    DebateStage::STAGES.each_with_index do |stage, i|
      self.stages.build(:label => stage.to_s, :starts_on => Date.today + i.months, :ends_on => Date.today + (i+1).months - 1.day)
    end
  end
end
is_public?() click to toggle source

Indica si el debate es público (no está en borrador)

# File app/models/debate.rb, line 117
def is_public?
  !self.published_at.nil?
end
organization() click to toggle source
# File app/models/debate.rb, line 215
def organization
  department
end
published?() click to toggle source

Indica si un documento está publicado

# File app/models/debate.rb, line 112
def published?
  !published_at.nil? && published_at <= Time.now
end
tag_name() click to toggle source

El tag del debate coincide con su hashtag (# incluido)

# File app/models/debate.rb, line 220
def tag_name
  self.hashtag
end
tags_without_hashtag() click to toggle source
# File app/models/debate.rb, line 235
def tags_without_hashtag
  if hashtag_tag = Tag.find_by_name_es(self.hashtag)
    tags.public - [hashtag_tag]
  else
    tags.public
  end
end
total_participation() click to toggle source
# File app/models/debate.rb, line 224
def total_participation
  self.arguments.published.size + self.votes_count
end
translated_to?(lang_code) click to toggle source

Indica si el debate está traducido a lang_code Los idiomas disponibles son Document::LANGUAGES

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