pretalx-plugin-broadcast-tools/pretalx_broadcast_tools/signals.py

45 lines
1.4 KiB
Python

from django.dispatch import receiver
from django.urls import resolve, reverse
from django.utils.translation import gettext_lazy as _
from django.utils.translation import gettext_noop
from i18nfield.strings import LazyI18nString
from pretalx.common.models.settings import hierarkey
from pretalx.common.signals import register_data_exporters
from pretalx.orga.signals import nav_event_settings
hierarkey.add_default(
"broadcast_tools_lower_thirds_no_talk_info",
LazyI18nString.from_gettext(
gettext_noop("Sorry, there's currently no talk running")
),
LazyI18nString,
)
hierarkey.add_default("broadcast_tools_lower_thirds_info_string", "", LazyI18nString)
@receiver(nav_event_settings)
def navbar_info(sender, request, **kwargs):
url = resolve(request.path_info)
if not request.user.has_perm("orga.change_settings", request.event):
return []
return [
{
"label": _("broadcast tools"),
"url": reverse(
"plugins:pretalx_broadcast_tools:orga",
kwargs={
"event": request.event.slug,
},
),
"active": url.namespace == "plugins:pretalx_broadcast_tools"
and url.url_name == "orga",
}
]
@receiver(register_data_exporters, dispatch_uid="exporter_broadcast_pdfexporter")
def register_data_exporter(sender, **kwargs):
from .exporter import PDFExporter
return PDFExporter