Class ScheduleEvent
In: app/models/schedule_event.rb
Parent: ActiveRecord::Base

Eventos de las agendas privadas.

Methods

Included Modules

Tools::Event Tools::Calendar::InstanceMethods

Attributes

has_journalists  [RW] 
has_photographers  [RW] 
organization_id  [RW]  Atributos y métodos para compatibilidad con el modelo Event

Public Instance methods

Indica si el evento pertenece a la agenda l_schedule.

[Source]

     # 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.

[Source]

     # 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.

[Source]

    # 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.

[Source]

    # 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.

[Source]

    # 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.

[Source]

    # 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.

[Source]

    # 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.

[Source]

     # File app/models/schedule_event.rb, line 130
130:   def schedule_name
131:     self.schedule.name
132:   end

Devuelve el evento en formato ical.

[Source]

     # 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.

[Source]

     # File app/models/schedule_event.rb, line 171
171:   def visibility_can_change?
172:     !self.schedule.department.nil?
173:   end

[Validate]