Video conference

Todo

Docstrings (module, models, utilities, plugins, exceptions)

Models

class indico.modules.vc.models.vc_rooms.VCRoom(**kwargs)

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.

created_by_id

ID of the creator

created_by_user

The user who created the videoconference room

created_dt

Creation timestamp of the videoconference room

data

videoconference plugin-specific data

id

Videoconference room ID

property locator
modified_dt

Modification timestamp of the videoconference room

name

Name of the videoconference room

property plugin
query: IndicoBaseQuery

A SQLAlchemy query for a model. Equivalent to db.session.query(Model). Can be customized per-model by overriding query_class.

Warning

The query interface is considered legacy in SQLAlchemy. Prefer using session.execute(select()) instead.

status

Status of the videoconference room

type

Type of the videoconference room

class indico.modules.vc.models.vc_rooms.VCRoomEventAssociation(**kwargs)

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance’s class are allowed. These could be, for example, any mapped columns or relationships.

contribution_id
data

videoconference plugin-specific data

delete(user, delete_all=False)

Delete a VC room from an event.

If the room is not used anywhere else, the room itself is also deleted.

Parameters:
  • user – the user performing the deletion

  • delete_all – if True, the room is detached from all events and deleted.

event

The associated Event

event_id

ID of the event

classmethod find_for_event(event, include_hidden=False, include_deleted=False, only_linked_to_event=False, **kwargs)

Return a Query that retrieves the videoconference rooms for an event.

Parameters:
  • event – an indico Event

  • only_linked_to_event – only retrieve the vc rooms linked to the whole event

  • kwargs – extra kwargs to pass to filter_by()

classmethod get_linked_for_event(event)

Get a dict mapping link objects to event vc rooms.

id

Association ID

Type of the object the vc_room is linked to

linked_block

The linked session block (if the VC room is attached to a block)

linked_contrib

The linked contribution (if the VC room is attached to a contribution)

linked_event

The linked event (if the VC room is attached to the event itself)

linked_event_id
property locator
query: IndicoBaseQuery

A SQLAlchemy query for a model. Equivalent to db.session.query(Model). Can be customized per-model by overriding query_class.

Warning

The query interface is considered legacy in SQLAlchemy. Prefer using session.execute(select()) instead.

session_block_id
show

If the vc room should be shown on the event page

vc_room

The associated :class:VCRoom

vc_room_id

ID of the videoconference room

class indico.modules.vc.models.vc_rooms.VCRoomLinkType(value)

An enumeration.

block = 3
contribution = 2
event = 1
class indico.modules.vc.models.vc_rooms.VCRoomStatus(value)

An enumeration.

created = 1
deleted = 2

Utilities

indico.modules.vc.util.find_event_vc_rooms(from_dt=None, to_dt=None, distinct=False)

Find VC rooms matching certain criteria.

Parameters:
  • from_dt – earliest event/contribution to include

  • to_dt – latest event/contribution to include

  • distinct – if True, never return the same (event, vcroom) more than once (even if it’s linked more than once to that event)

indico.modules.vc.util.get_linked_to_description(obj)
indico.modules.vc.util.get_managed_vc_plugins(user)

Return the plugins the user can manage.

indico.modules.vc.util.get_vc_plugins()

Return a dict containing the available videoconference plugins.

indico.modules.vc.util.resolve_title(obj)

Plugins

class indico.modules.vc.plugins.VCPluginMixin
acl_settings = {'acl', 'managers'}
can_manage_vc(user)

Check if a user has management rights on this VC system.

can_manage_vc_room(user, room)

Check if a user can manage a vc room.

can_manage_vc_rooms(user, event)

Check if a user can manage vc rooms on an event.

category = 'Videoconference'
clone_room(old_event_vc_room, link_object)

Clone the room, returning a new VCRoomEventAssociation.

Parameters:
  • old_event_vc_room – the original VCRoomEventAssociation

  • link_object – the new object the association will be tied to

Returns:

the new VCRoomEventAssociation

create_form(event, existing_vc_room=None, existing_event_vc_room=None)

Create the videoconference room form.

Parameters:
  • event – the event the videoconference room is for

  • existing_vc_room – a vc_room from which to retrieve data for the form

Returns:

an instance of an IndicoForm subclass

create_room(vc_room, event)
default_settings = {'notification_emails': []}
friendly_name = None

the readable name of the VC plugin

get_extra_delete_msg(vc_room, event_vc_room)

Return a custom message to show in the confirmation dialog when deleting a VC room.

Parameters:
  • vc_room – the VC room object

  • event_vc_room – the association of an event and a VC room

Returns:

a string (may contain HTML) with the message to display

get_notification_bcc_list(action, vc_room, event)
get_notification_cc_list(action, vc_room, event)
get_vc_room_attach_form_defaults(event)
get_vc_room_form_defaults(event)
property icon_url
init()
property logo_url
render_buttons(vc_room, event_vc_room, **kwargs)

Render a list of plugin specific buttons (eg: Join URL, etc) in the management area.

Parameters:
  • vc_room – the VC room object

  • event_vc_room – the association of an event and a VC room

  • kwargs – arguments passed to the template

render_event_buttons(vc_room, event_vc_room, **kwargs)

Render a list of plugin specific buttons (eg: Join URL, etc) in the event page.

Parameters:
  • vc_room – the VC room object

  • event_vc_room – the association of an event and a VC room

  • kwargs – arguments passed to the template

render_form(**kwargs)

Render the videoconference room form.

Parameters:

kwargs – arguments passed to the template

render_info_box(vc_room, event_vc_room, event, **kwargs)

Render the information shown in the expandable box of a VC room row.

Parameters:
  • vc_room – the VC room object

  • event_vc_room – the association of an event and a VC room

  • event – the event with the current VC room attached to it

  • kwargs – arguments passed to the template

render_manage_event_info_box(vc_room, event_vc_room, event, **kwargs)

Render the information shown in the expandable box on a VC room in the management area.

Parameters:
  • vc_room – the VC room object

  • event_vc_room – the association of an event and a VC room

  • event – the event with the current VC room attached to it

  • kwargs – arguments passed to the template

property service_name
settings_form

alias of VCPluginSettingsFormBase

update_data_association(event, vc_room, event_vc_room, data)
update_data_vc_room(vc_room, data, is_new=False)
vc_room_attach_form = None

the IndicoForm to use for the videoconference room attach form

vc_room_form = None

the IndicoForm to use for the videoconference room form

Exceptions

exception indico.modules.vc.exceptions.VCRoomError(message, field=None)
exception indico.modules.vc.exceptions.VCRoomNotFoundError(message)