def get(self, request, *args, **kwargs): context = self.get_context_data(**kwargs) html = render_to_string( self.get_template_names(), context, context_instance=RequestContext(request) ) try: document = make_pdf(html) except Exception as e: return HttpResponse(e.strerror) else: return HttpResponse( document.getvalue(), content_type="application/pdf" )
def post(self, request, *args, **kwargs): """Send an email with the order report to the supplier.""" self.object = self.get_object() ctx = self.get_context_data(**kwargs) ctx.update({'pagesize': 'A4'}) items = OrderItem.objects.filter(order=self.object).extra( select={"cost": "select (om_offer.invoice_price*om_orderitem.ordered_quantity) from om_offer where om_offer.id=om_orderitem.offer_id"} ) ctx.update({'items': items}) html = render_to_string( 'om/order_pdf.html', ctx, context_instance=RequestContext(request) ) try: document = make_pdf(html) except Exception as e: if settings.DEBUG: return HttpResponse(e.strerror) else: messages.error( self.request, _("The pdf report for the order could not be made.") ) else: subject = self.get_subject_template().render(Context(ctx)) body = self.get_body_template().render(Context(ctx)) message = EmailMessage( subject=subject.rstrip(), body=body, from_email='*****@*****.**', to=self.object.recipient_list, cc=['*****@*****.**',], attachments=[ ('%s.pdf' % self.object, document.getvalue(), 'application/pdf'), ], headers={'Reply-To': '*****@*****.**'} ) try: message.send() except Exception as e: messages.error(self.request, e) else: messages.success(self.request, _("The order was successfully sent.")) return HttpResponseRedirect(reverse('om_order_pending'))