Пример #1
0
    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()
Пример #2
0
    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()