| Class | ScheduleEvent |
| In: |
app/models/schedule_event.rb
|
| Parent: | ActiveRecord::Base |
Eventos de las agendas privadas.
| has_journalists | [RW] | |
| has_photographers | [RW] | |
| organization_id | [RW] | Atributos y métodos para compatibilidad con el modelo Event |
Indica si el evento pertenece a la agenda l_schedule.
# File app/models/schedule_event.rb, line 162
162: def belongs_to_l_schedule?
163: self.schedule_id.eql?(Schedule.ldk.id)
164: end
Copia los datos del evento evt a self.
# File app/models/schedule_event.rb, line 136
136: def copy_from(evt)
137: evt_attr = evt.attributes
138: evt_attr.delete('id')
139: evt_attr.each do |at, value|
140: if self.respond_to?("#{at}=")
141: self.send("#{at}=", value)
142: end
143: end
144:
145: if evt.is_a?(Event)
146: ['title', 'speaker'].each do |fld|
147: self.send("#{fld}=", [evt.send("#{fld}_es"), evt.send("#{fld}_eu"), evt.send("#{fld}_en")].uniq.compact.join(" | "))
148: end
149:
150: self.body ||= ''
151: # if evt.organization.is_a?(Department)
152: # self.body += "\n\nDepartamento: #{evt.organization.name}"
153: # else
154: # self.body += "\n\nOrganismo: #{evt.organization.name} (#{evt.organization.department.name})"
155: # end
156: end
157:
158: self
159: end
Devuelve el departamento que corresponde al evento. Si no existe devuleve nil.
# File app/models/schedule_event.rb, line 64
64: def department
65: self.schedule.department || nil
66: 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 59
59: def organization
60: self.schedule.department || Organization.new(:name => '')
61: end
Devuelve el id de la organización que corresponde аl evento о nil si la agenda del evento no pertenece a ningún departamento.
# File app/models/schedule_event.rb, line 70
70: def organization_id
71: self.schedule.department_id.blank? ? nil : self.schedule.department_id
72: end
Devuelve siempre true porque las agendas privadas sólo contienen eventos privados.
# File app/models/schedule_event.rb, line 75
75: def private_event
76: true
77: end
Devuelve siempre true aunque se intente asignar otro valor a este campo.
# File app/models/schedule_event.rb, line 80
80: def private_event=(val)
81: true
82: end
Devuelve el nombre de la agenda a la que pertenece el evento.
# File app/models/schedule_event.rb, line 130
130: def schedule_name
131: self.schedule.name
132: end
Devuelve el evento en formato ical.
# File app/models/schedule_event.rb, line 101
101: def to_ics(cal, &block)
102: if self.deleted?
103: cal.add_x_property('METHOD', 'CANCEL')
104: else
105: cal.add_x_property('METHOD', 'REQUEST')
106: end
107: cal.event do |event|
108: event.uid = "uid_" + self.id.to_s + "schedule_event_irekia_euskadi_net"
109: event.sequence = self.staff_alert_version
110: event.summary = self.title
111: event.description = self.body.strip_html #.gsub(/\n/, '\n')
112: event.dtstart = self.starts_at.getutc.strftime("%Y%m%dT%H%M%SZ")
113: event.dtend = self.ends_at.getutc.strftime("%Y%m%dT%H%M%SZ")
114: event.location = self.pretty_place
115: event.url = yield[:url] if block.present?
116: event.created = self.created_at.getutc.strftime("%Y%m%dT%H%M%SZ")
117: event.last_modified = self.updated_at.getutc.strftime("%Y%m%dT%H%M%SZ")
118: event.dtstamp = Time.now.getutc.strftime("%Y%m%dT%H%M%SZ")
119: if self.deleted?
120: event.status = "CANCELLED"
121: elsif self.confirmed?
122: event.status = "TENTATIVE"
123: else
124: event.status = "CONFIRMED"
125: end
126: end
127: 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 171
171: def visibility_can_change?
172: !self.schedule.department.nil?
173: end