Exemplo n.º 1
0
	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"
			)
Exemplo n.º 2
0
 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'))