mirror of
https://github.com/Kunsi/pretalx-plugin-broadcast-tools
synced 2024-11-24 13:21:01 +00:00
room info: add option to hide qr code or show the submission image
This commit is contained in:
parent
fa31e72db1
commit
12864749f9
4 changed files with 34 additions and 17 deletions
|
@ -1,4 +1,4 @@
|
||||||
from django.forms import BooleanField, CharField, Textarea
|
from django.forms import BooleanField, CharField, Textarea, ChoiceField
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from hierarkey.forms import HierarkeyForm
|
from hierarkey.forms import HierarkeyForm
|
||||||
from i18nfield.forms import I18nFormField, I18nFormMixin, I18nTextInput
|
from i18nfield.forms import I18nFormField, I18nFormMixin, I18nTextInput
|
||||||
|
@ -22,14 +22,26 @@ class BroadcastToolsSettingsForm(I18nFormMixin, HierarkeyForm):
|
||||||
required=False,
|
required=False,
|
||||||
widget=I18nTextInput,
|
widget=I18nTextInput,
|
||||||
)
|
)
|
||||||
broadcast_tools_room_info_feedback_instead_of_public = BooleanField(
|
|
||||||
help_text=_(
|
broadcast_tools_room_info_lower_content = ChoiceField(
|
||||||
"If checked, the qr code shown on the 'room info' page will "
|
choices=(
|
||||||
"link to the feedback page instead of the talk detail page."
|
("", "No lower content"),
|
||||||
|
("public_qr", "QR code linking to the 'talk detail' page"),
|
||||||
|
(
|
||||||
|
"feedback_qr",
|
||||||
|
"QR code linking to the feedback page of the currently running talk",
|
||||||
|
),
|
||||||
|
("talk_image", "session image uploaded by the speaker(s)"),
|
||||||
),
|
),
|
||||||
label=_("Show feedback QR code instead of talk detail QR code"),
|
help_text=_(
|
||||||
required=False,
|
"If a talk is running, the room info page will always show "
|
||||||
|
"the talk title and the list of speakers. The content below "
|
||||||
|
"is configurable here."
|
||||||
|
),
|
||||||
|
label=_("lower content"),
|
||||||
|
required=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
broadcast_tools_pdf_show_internal_notes = BooleanField(
|
broadcast_tools_pdf_show_internal_notes = BooleanField(
|
||||||
help_text=_(
|
help_text=_(
|
||||||
"If checked, the value of the 'internal notes' field in a "
|
"If checked, the value of the 'internal notes' field in a "
|
||||||
|
|
|
@ -13,15 +13,14 @@ function update_room_info() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!room_name) {
|
if (!room_name) {
|
||||||
$('#broadcast_tools_room_info_title').text(event_info['name']);
|
$('#broadcast_tools_room_info_roomname').text(event_info['name']);
|
||||||
$('#broadcast_tools_room_info_speaker').text('Backstage');
|
$('#broadcast_tools_room_info_title').text('Backstage');
|
||||||
|
$('#broadcast_tools_room_info_speaker').text('');
|
||||||
$('#broadcast_tools_room_info_qr').text('');
|
$('#broadcast_tools_room_info_qr').text('');
|
||||||
$('#broadcast_tools_room_info').css('background-color', event_info['color']);
|
$('#broadcast_tools_room_info').css('background-color', event_info['color']);
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#broadcast_tools_room_info_roomname').text(room_name);
|
|
||||||
|
|
||||||
if (!schedule) {
|
if (!schedule) {
|
||||||
$('#broadcast_tools_room_info_speaker').text('Waiting for schedule ...')
|
$('#broadcast_tools_room_info_speaker').text('Waiting for schedule ...')
|
||||||
return
|
return
|
||||||
|
@ -43,17 +42,23 @@ function update_room_info() {
|
||||||
|
|
||||||
current_talk = get_current_talk(15);
|
current_talk = get_current_talk(15);
|
||||||
if (current_talk) {
|
if (current_talk) {
|
||||||
if (event_info['room-info']['qr_type'] == 'feedback') {
|
if (event_info['room-info']['lower_info'] == 'feedback_qr') {
|
||||||
qr_info = '<img src="' + current_talk['urls']['feedback_qr'] + '" alt="Feedback QR Code"><p>Leave Feedback by scanning the code or visiting ' + current_talk['urls']['feedback'] + '</p>';
|
qr_info = '<img src="' + current_talk['urls']['feedback_qr'] + '" alt="Feedback QR Code"><p>Leave Feedback by scanning the code or visiting ' + current_talk['urls']['feedback'] + '</p>';
|
||||||
} else {
|
} else if (event_info['room-info']['lower_info'] == 'public_qr') {
|
||||||
qr_info = '<img src="' + current_talk['urls']['public_qr'] + '" alt="QR Code linking to URL below"><p>' + current_talk['urls']['public'] + '</p>';
|
qr_info = '<img src="' + current_talk['urls']['public_qr'] + '" alt="QR Code linking to URL below"><p>' + current_talk['urls']['public'] + '</p>';
|
||||||
|
} else if (event_info['room-info']['lower_info'] == 'talk_image' && current_talk['image_url']) {
|
||||||
|
qr_info = '<img src="' + current_talk['image_url'] + '" alt="Talk image">';
|
||||||
|
} else {
|
||||||
|
qr_info = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$('#broadcast_tools_room_info_roomname').text(room_name);
|
||||||
$('#broadcast_tools_room_info_title').text(current_talk['title']);
|
$('#broadcast_tools_room_info_title').text(current_talk['title']);
|
||||||
$('#broadcast_tools_room_info_speaker').text(current_talk['persons'].join(', '));
|
$('#broadcast_tools_room_info_speaker').text(current_talk['persons'].join(', '));
|
||||||
$('#broadcast_tools_room_info_qr').html(qr_info);
|
$('#broadcast_tools_room_info_qr').html(qr_info);
|
||||||
} else {
|
} else {
|
||||||
$('#broadcast_tools_room_info_title').text(event_info['name']);
|
$('#broadcast_tools_room_info_roomname').text(event_info['name']);
|
||||||
|
$('#broadcast_tools_room_info_title').text(room_name);
|
||||||
$('#broadcast_tools_room_info_speaker').text('');
|
$('#broadcast_tools_room_info_speaker').text('');
|
||||||
$('#broadcast_tools_room_info_qr').text('');
|
$('#broadcast_tools_room_info_qr').text('');
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,6 +64,7 @@
|
||||||
{% translate "Room info" %}
|
{% translate "Room info" %}
|
||||||
</legend>
|
</legend>
|
||||||
{% bootstrap_field form.broadcast_tools_room_info_feedback_instead_of_public layout='event' %}
|
{% bootstrap_field form.broadcast_tools_room_info_feedback_instead_of_public layout='event' %}
|
||||||
|
{% bootstrap_field form.broadcast_tools_room_info_lower_content layout='event' %}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>
|
<legend>
|
||||||
|
|
|
@ -75,9 +75,7 @@ class BroadcastToolsEventInfoView(View):
|
||||||
self.request.event.settings.broadcast_tools_lower_thirds_no_talk_info
|
self.request.event.settings.broadcast_tools_lower_thirds_no_talk_info
|
||||||
),
|
),
|
||||||
"room-info": {
|
"room-info": {
|
||||||
"qr_type": "feedback"
|
"lower_info": self.request.event.settings.broadcast_tools_room_info_lower_content or '',
|
||||||
if self.request.event.settings.broadcast_tools_room_info_feedback_instead_of_public
|
|
||||||
else "public",
|
|
||||||
},
|
},
|
||||||
"slug": self.request.event.slug,
|
"slug": self.request.event.slug,
|
||||||
},
|
},
|
||||||
|
@ -149,6 +147,7 @@ class BroadcastToolsScheduleView(EventPermissionRequired, ScheduleMixin, View):
|
||||||
else None,
|
else None,
|
||||||
"room": room["name"].localize(schedule.event.locale),
|
"room": room["name"].localize(schedule.event.locale),
|
||||||
"infoline": infoline.format(**placeholders(schedule, talk)),
|
"infoline": infoline.format(**placeholders(schedule, talk)),
|
||||||
|
"image_url": talk.submission.image_url,
|
||||||
"urls": {
|
"urls": {
|
||||||
"feedback": "{}{}".format(
|
"feedback": "{}{}".format(
|
||||||
schedule.event.custom_domain or settings.SITE_URL,
|
schedule.event.custom_domain or settings.SITE_URL,
|
||||||
|
|
Loading…
Reference in a new issue