diff --git a/pretalx_broadcast_tools/exporter.py b/pretalx_broadcast_tools/exporter.py index 35ac535..4f442e9 100644 --- a/pretalx_broadcast_tools/exporter.py +++ b/pretalx_broadcast_tools/exporter.py @@ -32,6 +32,16 @@ class PDFInfoPage(Flowable): self.style = style self.y_position = PAGE_PADDING + @property + def _questions(self): + return { + int(i.strip()) + for i in self.event.settings.broadcast_tools_pdf_questions_to_include.split( + "," + ) + if i + } + def _add(self, item, gap=2): _, height = item.wrapOn( self.canv, A4_WIDTH - 2 * PAGE_PADDING, A4_HEIGHT - 2 * PAGE_PADDING @@ -157,9 +167,11 @@ class PDFInfoPage(Flowable): ) ) - if self.talk.submission.answers: + if self.talk.submission.answers and self._questions: self._space() for answer in sorted(self.talk.submission.answers.all()): + if answer.question.id not in self._questions: + continue self._question_text( str(answer.question.question), answer.answer, @@ -246,7 +258,9 @@ class PDFExporter(ScheduleData): ParagraphStyle(name="Meta", fontName="Helvetica", fontSize=14, leading=16) ) stylesheet.add( - ParagraphStyle(name="Question", fontName="Helvetica", fontSize=12, leading=14) + ParagraphStyle( + name="Question", fontName="Helvetica", fontSize=12, leading=14 + ) ) stylesheet.add( ParagraphStyle( diff --git a/pretalx_broadcast_tools/forms.py b/pretalx_broadcast_tools/forms.py index af28812..13a64c4 100644 --- a/pretalx_broadcast_tools/forms.py +++ b/pretalx_broadcast_tools/forms.py @@ -1,4 +1,4 @@ -from django.forms import BooleanField +from django.forms import BooleanField, CharField from django.utils.translation import gettext_lazy as _ from hierarkey.forms import HierarkeyForm from i18nfield.forms import I18nFormField, I18nFormMixin, I18nTextInput @@ -35,3 +35,11 @@ class BroadcastToolsSettingsForm(I18nFormMixin, HierarkeyForm): label=_("Ignore 'do not record' talks when generating pdf"), required=False, ) + broadcast_tools_pdf_questions_to_include = CharField( + help_text=_( + "Comma-Separated list of question ids to include in pdf export. " + "If empty, no questions will get added." + ), + label=_("Questions to include"), + required=False, + ) diff --git a/pretalx_broadcast_tools/templates/pretalx_broadcast_tools/orga.html b/pretalx_broadcast_tools/templates/pretalx_broadcast_tools/orga.html index 0266578..5ce55dd 100644 --- a/pretalx_broadcast_tools/templates/pretalx_broadcast_tools/orga.html +++ b/pretalx_broadcast_tools/templates/pretalx_broadcast_tools/orga.html @@ -42,6 +42,7 @@ {% bootstrap_field form.broadcast_tools_pdf_show_internal_notes layout='event' %} {% bootstrap_field form.broadcast_tools_pdf_ignore_do_not_record layout='event' %} + {% bootstrap_field form.broadcast_tools_pdf_questions_to_include layout='event' %}