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())
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")
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()
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)