def generate(self, op): order = op.order layout = override_layout.send_chained( order.event, 'layout', orderposition=op, layout=self.layout_map.get( (op.item_id, order.sales_channel), self.layout_map.get((op.item_id, 'web'), self.default_layout))) with language(order.locale): outbuffer = self._draw_page(layout, op, order) return 'order%s%s.pdf' % ( self.event.slug, order.code), 'application/pdf', outbuffer.read()
def generate_order(self, order: Order): merger = PdfFileMerger() with language(order.locale): for op in order.positions_with_tickets: layout = override_layout.send_chained( order.event, 'layout', orderposition=op, layout=self.layout_map.get( (op.item_id, order.sales_channel), self.layout_map.get((op.item_id, 'web'), self.default_layout))) outbuffer = self._draw_page(layout, op, order) merger.append(ContentFile(outbuffer.read())) outbuffer = BytesIO() merger.write(outbuffer) merger.close() outbuffer.seek(0) return 'order%s%s.pdf' % ( self.event.slug, order.code), 'application/pdf', outbuffer.read()