diff --git a/vc_zoom/indico_vc_zoom/plugin.py b/vc_zoom/indico_vc_zoom/plugin.py index 2945639..b329078 100644 --- a/vc_zoom/indico_vc_zoom/plugin.py +++ b/vc_zoom/indico_vc_zoom/plugin.py @@ -527,6 +527,13 @@ class ZoomPlugin(VCPluginMixin, IndicoPlugin): def _event_metadata_postprocess(self, sender, event, data, user=None, **kwargs): urls = [] + if 'description' in kwargs.get('html_fields', ()): + linebreak = '
\n' + format_link = lambda name, url: f'{escape(name)}: {url}' + else: + linebreak = '\n' + format_link = lambda name, url: f'{name}: {url}' + for assoc in event.vc_room_associations: if not assoc.show or assoc.vc_room.type != 'zoom': continue @@ -537,11 +544,11 @@ class ZoomPlugin(VCPluginMixin, IndicoPlugin): (visibility == 'registered' and user is not None and event.is_user_registered(user)) or event.can_manage(user) ): - urls.append('{}: {}'.format(assoc.vc_room.name, assoc.vc_room.data['url'])) + urls.append(format_link(assoc.vc_room.name, assoc.vc_room.data['url'])) elif visibility == 'no_one': # XXX: Not sure if showing this is useful, but on the event page we show the join link # with no passcode as well, so let's the logic identical here. - urls.append('{}: {}'.format(assoc.vc_room.name, assoc.vc_room.data['public_url'])) + urls.append(format_link(assoc.vc_room.name, assoc.vc_room.data['public_url'])) if urls: - return {'description': (data['description'] + '\n\n' + '\n'.join(urls)).strip()} + return {'description': (data['description'] + (linebreak * 2) + linebreak.join(urls)).strip()}