diff --git a/indico_jacow/plugin.py b/indico_jacow/plugin.py index 93344d6..14f4a4d 100644 --- a/indico_jacow/plugin.py +++ b/indico_jacow/plugin.py @@ -25,6 +25,7 @@ from indico.modules.events.papers.views import WPManagePapers from indico.modules.events.persons.forms import ManagePersonListsForm from indico.modules.events.persons.schemas import PersonLinkSchema +from indico.modules.events.registration.schemas import CheckinRegistrationSchema from indico.util.i18n import _ from indico.web.forms.base import IndicoForm from indico.web.forms.widgets import SwitchWidget @@ -72,6 +73,8 @@ def init(self): self.connect(signals.menu.items, self._add_sidemenu_item, sender='event-management-sidemenu') self.connect(signals.plugin.schema_pre_load, self._person_link_schema_pre_load, sender=PersonLinkSchema) self.connect(signals.plugin.schema_post_dump, self._person_link_schema_post_dump, sender=PersonLinkSchema) + self.connect(signals.plugin.schema_post_dump, self._checkin_registration_schema_post_dump, + sender=CheckinRegistrationSchema) wps = (WPContributions, WPDisplayAbstracts, WPManageAbstracts, WPManageContributions, WPMyContributions, WPManagePapers) self.inject_bundle('main.js', wps) @@ -229,5 +232,13 @@ def _person_link_schema_post_dump(self, sender, data, orig, **kwargs): person['jacow_affiliations_ids'] = [ja.affiliation.id for ja in person_link.jacow_affiliations] person['jacow_affiliations_meta'] = [ja.details for ja in person_link.jacow_affiliations] + def _checkin_registration_schema_post_dump(self, sender, data, orig, **kwargs): + for reg, registration in zip(data, orig, strict=True): + if not registration.transaction: + continue + reg['transaction_amount'] = registration.transaction.amount + reg['transaction_currency'] = registration.transaction.currency + reg['transaction_status'] = registration.transaction.status.name + def get_blueprints(self): return blueprint