|
17 | 17 | from indico.core import signals |
18 | 18 | from indico.core.plugins import IndicoPlugin |
19 | 19 | from indico.core.settings.converters import TimedeltaConverter |
| 20 | +from indico.modules.events import Event |
20 | 21 | from indico.modules.events.registration.models.registrations import RegistrationState |
21 | 22 | from indico.modules.users import ExtraUserPreferences |
22 | 23 | from indico.web.forms.base import IndicoForm |
@@ -215,6 +216,7 @@ def init(self): |
215 | 216 | self.connect(signals.event.registration.registration_state_updated, self.event_registration_state_changed) |
216 | 217 | self.connect(signals.event.registration.registration_deleted, self.event_registration_deleted) |
217 | 218 | self.connect(signals.event.updated, self.event_updated) |
| 219 | + self.connect(signals.event.location_changed, self.event_location_changed, sender=Event) |
218 | 220 | self.connect(signals.event.created, self.event_created) |
219 | 221 | self.connect(signals.event.restored, self.event_created) |
220 | 222 | self.connect(signals.event.deleted, self.event_deleted) |
@@ -301,6 +303,12 @@ def event_registration_form_deleted(self, registration_form, **kwargs): |
301 | 303 | def _is_event_not_happening(self, event): |
302 | 304 | return event.label is not None and event.label.is_event_not_happening |
303 | 305 |
|
| 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 | + |
304 | 312 | def event_updated(self, event, changes, **kwargs): |
305 | 313 | changes = dict(changes) |
306 | 314 | monitored_keys = {'title', 'description', 'location_data', 'person_links', 'label', 'start_dt', 'end_dt'} |
|
0 commit comments