diff --git a/pretalx_broadcast_tools/exporter.py b/pretalx_broadcast_tools/exporter.py index 9d22788..f1e10d1 100644 --- a/pretalx_broadcast_tools/exporter.py +++ b/pretalx_broadcast_tools/exporter.py @@ -284,8 +284,7 @@ class PDFExporter(ScheduleData): show_qrcode = False icon = "fa-file-pdf" - def _add_pages(self, doc): - style = self._style() + def _add_pages(self): pages = [] for fahrplan_day in self.data: for room_details in fahrplan_day["rooms"]: @@ -302,12 +301,13 @@ class PDFExporter(ScheduleData): fahrplan_day, room_details, talk, - style, + self._style, ) ) pages.append(PageBreak()) return pages + @property def _style(self): stylesheet = StyleSheet1() stylesheet.add( @@ -366,7 +366,7 @@ class PDFExporter(ScheduleData): topMargin=0, bottomMargin=0, ) - doc.build(self._add_pages(doc)) + doc.build(self._add_pages()) f.seek(0) return ( diff --git a/pretalx_broadcast_tools/management/commands/export_voctomix_lower_thirds.py b/pretalx_broadcast_tools/management/commands/export_voctomix_lower_thirds.py index 50c84b3..c9ebe56 100644 --- a/pretalx_broadcast_tools/management/commands/export_voctomix_lower_thirds.py +++ b/pretalx_broadcast_tools/management/commands/export_voctomix_lower_thirds.py @@ -78,13 +78,15 @@ class VoctomixLowerThirdsExporter: encoding="unic", ) - def _hex2rgb(self, hex_value): + @staticmethod + def _hex2rgb(hex_value): hex_value = hex_value.lstrip("#") # black insists this should have spaces around the :, but flake8 # complains about spaces around the :, soooooo .... return tuple(int(hex_value[i : i + 2], 16) for i in (0, 2, 4)) # NOQA - def _fit_text(self, input_text, font, max_width): + @staticmethod + def _fit_text(input_text, font, max_width): words = [i.strip() for i in input_text.split()] lines = [] line = [] @@ -177,7 +179,7 @@ class VoctomixLowerThirdsExporter: img.save(filename) self.log.debug( f"Generated single-speaker image for {speaker.get_display_name()!r} " - "of talk {talk.submission.title!r}, saved as {filename}" + f"of talk {talk.submission.title!r}, saved as {filename}" ) return filename diff --git a/pretalx_broadcast_tools/static/pretalx_broadcast_tools/frontend.css b/pretalx_broadcast_tools/static/pretalx_broadcast_tools/frontend.css index 0df4ef0..650e93b 100644 --- a/pretalx_broadcast_tools/static/pretalx_broadcast_tools/frontend.css +++ b/pretalx_broadcast_tools/static/pretalx_broadcast_tools/frontend.css @@ -63,7 +63,7 @@ body { margin-left: -510px; padding: 15px; - box-shadow: 5px 5px 10px 0px rgba(50, 50, 50, 0.75); + box-shadow: 5px 5px 10px 0 rgba(50, 50, 50, 0.75); background-color: #3aa57c; } diff --git a/pretalx_broadcast_tools/views/qr.py b/pretalx_broadcast_tools/views/qr.py index ec55d65..e00c992 100644 --- a/pretalx_broadcast_tools/views/qr.py +++ b/pretalx_broadcast_tools/views/qr.py @@ -8,23 +8,23 @@ from django.utils.safestring import mark_safe from django.views import View +def _make_svg_response(url): + image = qrcode.make( + url, image_factory=qrcode.image.svg.SvgImage + ) + svg_data = mark_safe(ElementTree.tostring(image.get_image()).decode()) + return HttpResponse(svg_data, content_type="image/svg+xml") + + class BroadcastToolsFeedbackQrCodeSvg(View): def get(self, request, *args, **kwargs): talk = self.request.event.submissions.filter(id=kwargs["talk"]).first() domain = request.event.custom_domain or settings.SITE_URL - image = qrcode.make( - f"{domain}{talk.urls.feedback}", image_factory=qrcode.image.svg.SvgImage - ) - svg_data = mark_safe(ElementTree.tostring(image.get_image()).decode()) - return HttpResponse(svg_data, content_type="image/svg+xml") + return _make_svg_response(f"{domain}{talk.urls.feedback}") class BroadcastToolsPublicQrCodeSvg(View): def get(self, request, *args, **kwargs): talk = self.request.event.submissions.filter(id=kwargs["talk"]).first() domain = request.event.custom_domain or settings.SITE_URL - image = qrcode.make( - f"{domain}{talk.urls.public}", image_factory=qrcode.image.svg.SvgImage - ) - svg_data = mark_safe(ElementTree.tostring(image.get_image()).decode()) - return HttpResponse(svg_data, content_type="image/svg+xml") + return _make_svg_response(f"{domain}{talk.urls.public}")