Features & Integrations

This section documents the advanced features and integrations in the unified eventyay system.

Live Features (Video Component)

WebSocket Consumers

The live features WebSocket consumers are located in eventyay.features.live.consumers.

Live Modules

Live module handlers are in eventyay.features.live.modules package:

  • room.py - Room management

  • chat.py - Chat handling

  • poll.py - Poll functionality

  • bbb.py - BigBlueButton integration

  • exhibition.py - Exhibition features

  • poster.py - Poster sessions

  • question.py - Q&A management

  • roulette.py - Speed networking

  • zoom.py - Zoom integration

  • januscall.py - Janus WebRTC calls

Analytics

Analytics Graphs

class eventyay.features.analytics.graphs.report.ReportGenerator(event, pdf_graphs=True)

Bases: object

build(input)
date_begin
date_end
day_whitelist
get_doc_template()
get_frames(doc)
get_left_header_string()
get_right_header_string()
get_story()
global_sums()
on_page(canvas, doc)
page_header(canvas, doc)
property pagesize
story_for_exhibitors()
story_for_room(room: Room)
stylesheet
tz
class eventyay.features.analytics.graphs.utils.PdfImage(filename_or_object, width=None, height=None, kind='direct')

Bases: Flowable

drawOn(canv, x, y, _sw=0)

Tell it to draw itself on the canvas. Do not override

wrap(aw, ah)

This will be called by the enclosing frame before objects are asked their size, drawn or whatever. It returns the size actually used.

eventyay.features.analytics.graphs.utils.get_schedule(event: Event, fail_silently=True)
eventyay.features.analytics.graphs.utils.median_value(queryset, term)
eventyay.features.analytics.graphs.utils.pretalx_uni18n(i18nstring, locale='en')

Analytics Tasks

Importers

ConfTool Import

eventyay.features.importers.conftool.create_posters_from_conftool(event, url, password, status='-3', session_as_category=True)
eventyay.features.importers.conftool.escape_markdown(text)
eventyay.features.importers.conftool.fetch_schedule_from_conftool(url, password)
eventyay.features.importers.conftool.mirror_conftool_file(event, url, password, nonce, preview=False)

Import Tasks

Integrations

Zoom Integration

class eventyay.features.integrations.zoom.views.IframeTestView(**kwargs)

Bases: ZoomViewMixin, TemplateView

template_name = 'zoom/iframetest.html'
class eventyay.features.integrations.zoom.views.MeetingEndedView(**kwargs)

Bases: ZoomViewMixin, TemplateView

template_name = 'zoom/ended.html'
class eventyay.features.integrations.zoom.views.MeetingView(**kwargs)

Bases: ZoomViewMixin, TemplateView

get_context_data(**kwargs)
template_name = 'zoom/meeting.html'
class eventyay.features.integrations.zoom.views.ZoomViewMixin

Bases: object

dispatch(request, *args, **kwargs)
event
eventyay.features.integrations.zoom.views.generate_signature(data)
eventyay.features.integrations.zoom.views.get_closest_zoom_lang(event)

Storage Integrations

class eventyay.features.integrations.platforms.storage.nanocdn.NanoCDNFile(name, storage, mode='rb')

Bases: File

chunks(chunk_size=None)

Read the file and yield chunks of chunk_size bytes (defaults to File.DEFAULT_CHUNK_SIZE).

read(num_bytes=None)
property size
write(content)
class eventyay.features.integrations.platforms.storage.nanocdn.NanoCDNStorage

Bases: Storage

delete(name)

Delete the specified file from the storage system.

exists(name)

Return True if a file referenced by the given name already exists in the storage system, or False if the name is available for a new file.

get_available_name(name, max_length=None)

Return a filename that’s free on the target storage system and available for new content to be written to.

size(name)

Return the total size, in bytes, of the file specified by name.

url(name)

Return an absolute URL where the file’s contents can be accessed directly by a web browser.

Social Features

Twitter Integration

eventyay.features.social.views.twitter.return_view(request)
eventyay.features.social.views.twitter.start_view(request)

LinkedIn Integration

eventyay.features.social.views.linkedin.return_view(request)
eventyay.features.social.views.linkedin.start_view(request)

Social Utilities

eventyay.features.social.utils.update_user_profile_from_social(user: User, network, *, name, url, avatar_url=None, avatar_media_type=None)