diff --git a/app/controllers/assignments_controller.rb b/app/controllers/assignments_controller.rb index e0ff578b72ac173c167ddbfc43075f517630852a..78e5178e91375432dd3f56690d8cf9f7fe6721ce 100644 --- a/app/controllers/assignments_controller.rb +++ b/app/controllers/assignments_controller.rb @@ -61,11 +61,12 @@ class AssignmentsController < ApplicationController event.dtstart = Icalendar::Values::DateTime.new(session.starts_at, tzid: session.starts_at.zone) event.dtend = Icalendar::Values::DateTime.new(session.ends_at, tzid: session.ends_at.zone) event.summary = session.title - event.description = session.description + event.description = helpers.strip_tags(session.description) event.location = [session.stage.name, session.conference.name].join(' @ ') event.created = Icalendar::Values::DateTime.new(session.created_at) event.last_modified = Icalendar::Values::DateTime.new(session.updated_at) event.uid = [session.conference.slug, session.ref_id].join('-') + event.append_custom_property("X-ALT-DESC;FMTTYPE=text/html", session.description) calendar.add_event(event) end diff --git a/app/models/session.rb b/app/models/session.rb index 1a757bdfc3a61bbec2ef8e50cc845d18c6e8006e..ffe1ab5e6ec2b96bf2b7b8ec24583723625e25ae 100644 --- a/app/models/session.rb +++ b/app/models/session.rb @@ -6,6 +6,8 @@ class Session < ApplicationRecord validates :ref_id, uniqueness: { scope: :conference_id } + after_update :notify_if_changed + def to_param ref_id end @@ -17,4 +19,12 @@ class Session < ApplicationRecord def ends_at super.in_time_zone(conference.time_zone) end + + private + + def notify_if_changed + if saved_changes.present? + ActiveSupport::Notifications.instrument("republica.import.session.updated", record: self, changes: saved_changes) + end + end end