class ScheduleEvent

Eventos de las agendas privadas.

Attributes

all_journalists[RW]
area_id[RW]
has_journalists[RW]
has_photographers[RW]
only_photographers[RW]
organization_id[RW]

Atributos y métodos para compatibilidad con el modelo Event

politicians_tag_list[RW]

Public Instance Methods

attendee_names() click to toggle source

Para compatibilidad con Event

# File app/models/schedule_event.rb, line 197
def attendee_names
  ""
end
belongs_to_l_schedule?() click to toggle source

Indica si el evento pertenece a la agenda del Lehendakari.

# File app/models/schedule_event.rb, line 183
def belongs_to_l_schedule?
  self.schedule_id.eql?(Schedule.lehendakari.id)
end
copy_from(evt) click to toggle source

Copia los datos del evento evt a self.

# File app/models/schedule_event.rb, line 157
def copy_from(evt)
  evt_attr = evt.attributes
  evt_attr.delete('id')
  evt_attr.each do |at, value|
    if self.respond_to?("#{at}=")
      self.send("#{at}=", value)
    end
  end
  
  if evt.is_a?(Event)
    ['title', 'speaker'].each do |fld|
      self.send("#{fld}=", [evt.send("#{fld}_es"), evt.send("#{fld}_eu"), evt.send("#{fld}_en")].uniq.compact.join(" | "))
    end
    
    self.body ||= ''
    # if evt.organization.is_a?(Department)
    #   self.body += "\n\nDepartamento: #{evt.organization.name}"
    # else
    #   self.body += "\n\nOrganismo: #{evt.organization.name} (#{evt.organization.department.name})"
    # end      
  end
  
  self    
end
department() click to toggle source

Devuelve el departamento que corresponde al evento. Si no existe devuleve nil.

# File app/models/schedule_event.rb, line 92
def department
  self.schedule.department || nil
end
organization() click to toggle source

Devuelve la organización que corresponde al evento. Si no existe devuleve un objeto de la clasе Organization.

# File app/models/schedule_event.rb, line 87
def organization
  self.schedule.department || Organization.new(:name => '')
end
politicians() click to toggle source

Para compatibilidad con Event, cuando salen eventos de los tipos en una lista.

# File app/models/schedule_event.rb, line 82
def politicians
  []
end
private_event=(val) click to toggle source

Devuelve siempre true aunque se intente asignar otro valor a este campo.

# File app/models/schedule_event.rb, line 104
def private_event=(val)
  true
end
schedule_name() click to toggle source

Devuelve el nombre de la agenda a la que pertenece el evento.

# File app/models/schedule_event.rb, line 151
def schedule_name
  self.schedule.name
end
to_ics(cal) { |:url| ... } click to toggle source

Devuelve el evento en formato ical.

# File app/models/schedule_event.rb, line 124
def to_ics(cal, &block)
    if self.deleted?
      cal.add_x_property('METHOD', 'CANCEL')
    else
      cal.add_x_property('METHOD', 'REQUEST')
    end
    cal.event do |event|
      event.uid = "uid_" + self.id.to_s + "schedule_event_irekia_euskadi_net"
      event.sequence = self.staff_alert_version
      event.summary = self.title
      event.description = self.body.strip_html #.gsub(/\n/, '\n')
      event.dtstart =  self.starts_at.getutc.strftime("%Y%m%dT%H%M%SZ")
      event.dtend = self.ends_at.getutc.strftime("%Y%m%dT%H%M%SZ")
      event.location = self.pretty_place
      event.url = yield[:url] if block.present?
      event.created = self.created_at.getutc.strftime("%Y%m%dT%H%M%SZ")
      event.last_modified = self.updated_at.getutc.strftime("%Y%m%dT%H%M%SZ")
      event.dtstamp = Time.now.getutc.strftime("%Y%m%dT%H%M%SZ")
      if self.deleted?
        event.status = "CANCELLED"
      else
        event.status = "CONFIRMED"
      end
    end
end
visibility_can_change?() click to toggle source

Indica si el evento se puede pasar a otra agenda.

Los eventos de las agendas que no tienen departamento, no pueden cambiar de agenda ni pueden transformarse en eventos compartidos.

# File app/models/schedule_event.rb, line 192
def visibility_can_change?
  !self.schedule.department.nil?
end