Skip to content

Commit 2961dc7

Browse files
committed
Outlook: Trigger updates on event location changes
1 parent f0320f4 commit 2961dc7

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

outlook/indico_outlook/plugin.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from indico.core import signals
1818
from indico.core.plugins import IndicoPlugin
1919
from indico.core.settings.converters import TimedeltaConverter
20+
from indico.modules.events import Event
2021
from indico.modules.events.registration.models.registrations import RegistrationState
2122
from indico.modules.users import ExtraUserPreferences
2223
from indico.web.forms.base import IndicoForm
@@ -215,6 +216,7 @@ def init(self):
215216
self.connect(signals.event.registration.registration_state_updated, self.event_registration_state_changed)
216217
self.connect(signals.event.registration.registration_deleted, self.event_registration_deleted)
217218
self.connect(signals.event.updated, self.event_updated)
219+
self.connect(signals.event.location_changed, self.event_location_changed, sender=Event)
218220
self.connect(signals.event.created, self.event_created)
219221
self.connect(signals.event.restored, self.event_created)
220222
self.connect(signals.event.deleted, self.event_deleted)
@@ -301,6 +303,12 @@ def event_registration_form_deleted(self, registration_form, **kwargs):
301303
def _is_event_not_happening(self, event):
302304
return event.label is not None and event.label.is_event_not_happening
303305

306+
def event_location_changed(self, obj_type, obj, changes, **kwargs):
307+
# this is a bit of a hack because we do not receive full location_data in this signal,
308+
# but since `event_updated` does not care about the actual change to the data we can
309+
# just send dummy data. unpacking it would fail but this isn't done anyway
310+
self.event_updated(obj, {'location_data': True})
311+
304312
def event_updated(self, event, changes, **kwargs):
305313
changes = dict(changes)
306314
monitored_keys = {'title', 'description', 'location_data', 'person_links', 'label', 'start_dt', 'end_dt'}

0 commit comments

Comments
 (0)