class DebateStage

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

Constants

STAGES

Attributes

active[RW]

Public Instance Methods

is_current?() click to toggle source
# File app/models/debate_stage.rb, line 45
def is_current?
  !self.is_passed? && !self.is_future?
end
is_future?() click to toggle source
# File app/models/debate_stage.rb, line 41
def is_future?
  self.starts_on > Date.today
end
is_passed?() click to toggle source
# File app/models/debate_stage.rb, line 37
def is_passed?
  self.ends_on < Date.today
end

Protected Instance Methods

has_correct_starts_on?(debate_stages) click to toggle source

Comprueba si la fase tiene la fecha de inicio correcta con respecto a la fase anterior dentro de la lista de fases del debate.

NOTA: No se puede usar self.debate porque si es un debate nuevo, para las fases debate_id todavía es nil. Por esto, llamamos este método desde un before_save del modelo Debate donde tenemos acceso a todas las fases del debate.

# File app/models/debate_stage.rb, line 63
def has_correct_starts_on?(debate_stages)
  current_stage_position = DebateStage::STAGES.index(self.label.to_sym)
  if current_stage_position > 0
    if prev_stage = debate_stages.detect {|s| s.label.eql?(STAGES[current_stage_position-1].to_s)}
      if prev_stage.starts_on >= starts_on
        errors.add(:starts_on, "La fecha de inicio tiene que ser posterior a la fecha de inicio de la fase anterior.")
        return false
      end
    end
  end
  return true
end