Eventos de las agendas privadas.
Atributos y métodos para compatibilidad con el modelo Event
Para compatibilidad con Event
# File app/models/schedule_event.rb, line 197 def attendee_names "" end
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
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
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
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
Para compatibilidad con Event, cuando salen eventos de los tipos en una lista.
# File app/models/schedule_event.rb, line 82 def politicians [] end
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
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
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
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