Ejemplo n.º 1
0
    def test_manual_code_creation(self):
        if 'lippukala' not in settings.INSTALLED_APPS:
            print 'Test disabled due to lippukala not being installed'
            return

        num_tickets = 2

        order = _create_order(num_tickets)
        product = order.order_product_set.get().product

        order.confirm_order()

        lippukala_order = LippukalaOrder.objects.create(
            address_text=order.formatted_address,
            free_text=u"Tervetuloa Traconiin!",
            reference_number=order.reference_number,
        )

        codes = [Code.objects.create(
            order=lippukala_order,
            prefix=order.lippukala_prefix,
            product_text=product.name,
        ) for i in xrange(num_tickets)]

        for code in codes:
            print code.full_code, code.literate_code
            assert code.full_code.startswith(Queue.TWO_WEEKEND_TICKETS)
            assert code.literate_code.startswith(settings.LIPPUKALA_PREFIXES[Queue.TWO_WEEKEND_TICKETS])

        printer = OrderPrinter()
        printer.process_order(lippukala_order)

        with open(settings.MKPATH('tmp', 'test_manual_code_creation.pdf'), 'wq') as output_file:
            output_file.write(printer.finish())
Ejemplo n.º 2
0
def test_printing(one_per_page):
    from lippukala.printing import OrderPrinter
    printer = OrderPrinter()
    printer.ONE_TICKET_PER_PAGE = one_per_page
    for x in range(3):
        order = _create_test_order()
        printer.process_order(order)

    outf = BytesIO()
    outf.write(printer.finish())
    assert outf.getvalue().startswith(b"%PDF")
Ejemplo n.º 3
0
    def get_etickets_pdf(self):
        if 'lippukala' not in settings.INSTALLED_APPS:
            raise NotImplementedError('lippukala not installed')

        from lippukala.printing import OrderPrinter

        meta = self.event.tickets_event_meta

        printer = OrderPrinter(
            print_logo_path=meta.print_logo_path,
            print_logo_size_cm=meta.print_logo_size_cm,
        )
        printer.process_order(self.lippukala_order)

        return printer.finish()
Ejemplo n.º 4
0
    def get_etickets_pdf(self):
        if 'lippukala' not in settings.INSTALLED_APPS:
            raise NotImplementedError('lippukala not installed')

        from lippukala.printing import OrderPrinter

        meta = self.event.tickets_event_meta

        printer = OrderPrinter(
            print_logo_path=meta.print_logo_path,
            print_logo_size_cm=meta.print_logo_size_cm,
        )
        printer.process_order(self.lippukala_order)

        return printer.finish()
Ejemplo n.º 5
0
    def send_confirmation_message(self, msgtype):
        # don't fail silently, warn admins instead
        msgbcc = []
        meta = self.event.tickets_event_meta

        if meta.ticket_spam_email:
            msgbcc.append(meta.ticket_spam_email)

        for op in self.order_product_set.filter(count__gt=0):
            if op.product.notify_email:
                msgbcc.append(op.product.notify_email)

        attachments = []

        if msgtype == "payment_confirmation":
            if 'lippukala' in settings.INSTALLED_APPS and self.contains_electronic_tickets:
                from lippukala.printing import OrderPrinter

                printer = OrderPrinter(
                    print_logo_path=meta.print_logo_path,
                    print_logo_size_cm=meta.print_logo_size_cm,
                )
                printer.process_order(self.lippukala_order)
                attachments.append(('e-lippu.pdf', printer.finish(), 'application/pdf'))

                msgsubject = u"{self.event.name}: E-lippu ({self.formatted_order_number})".format(self=self)
                msgbody = render_to_string("tickets_confirm_payment.eml", self.email_vars)
            else:
                msgsubject = u"{self.event.name}: Tilausvahvistus ({self.formatted_order_number})".format(self=self)
                msgbody = render_to_string("tickets_confirm_payment.eml", self.email_vars)

        elif msgtype == "delivery_confirmation":
            msgsubject = u"{self.event.name}: Toimitusvahvistus ({self.formatted_order_number})".format(self=self)
            msgbody = render_to_string("tickets_confirm_delivery.eml", self.email_vars)

        elif msgtype == "cancellation_notice":
            msgsubject = u"{self.event.name}: Tilaus peruttu ({self.formatted_order_number})".format(self=self)
            msgbody = render_to_string("tickets_cancellation_notice.eml", self.email_vars)

        elif msgtype == "uncancellation_notice":
            msgsubject = u"{self.event.name}: Tilaus palautettu ({self.formatted_order_number})".format(self=self)
            msgbody = render_to_string("tickets_uncancellation_notice.eml", self.email_vars)

        else:
            raise NotImplementedError(msgtype)

        if settings.DEBUG:
            print msgbody

        message = EmailMessage(
            subject=msgsubject,
            body=msgbody,
            from_email=self.event.tickets_event_meta.contact_email,
            to=(self.customer.name_and_email,),
            bcc=msgbcc
        )

        for attachment in attachments:
            message.attach(*attachment)

        message.send(fail_silently=True)