def download_pdf(request, id): invoice = get_object_or_404(Invoice, pk=id) if not has_perm(request.user, 'invoices.change_invoice', invoice): raise Http403 result = invoice_pdf(request, invoice) response = HttpResponse(result.getvalue(), content_type='application/pdf') response['Content-Disposition'] = 'attachment; filename="invoice_{}.pdf"'.format(invoice.id) return response
def download_pdf(request, id): invoice = get_object_or_404(Invoice, pk=id) if not has_perm(request.user, 'invoices.change_invoice'): raise Http403 result = invoice_pdf(request, invoice) response = HttpResponse(result.getvalue(), content_type='application/pdf') response['Content-Disposition'] = 'attachment; filename="invoice_{}.pdf"'.format(invoice.id) return response
def email_invoice(request, invoice_id, form_class=EmailInvoiceForm, template_name='invoices/email_invoice.html'): if not request.user.profile.is_superuser: raise Http403 invoice = get_object_or_404(Invoice, pk=invoice_id) if request.method == "POST": email = Email() form = form_class(request.POST, instance=email) if form.is_valid(): email = form.save(commit=False) email.sender_display = request.user.get_full_name() email.reply_to = request.user.email email.recipient = form.cleaned_data['recipient'] email.content_type = "html" email.recipient_cc = form.cleaned_data['cc'] attachment = form.cleaned_data['attachment'] kwargs = {} if attachment: result = invoice_pdf(request, invoice) kwargs['attachments'] = [("invoice_{}.pdf".format(invoice.id), result.getvalue(), 'application/pdf') ] email.send(**kwargs) EventLog.objects.log(instance=email) msg_string = 'Successfully sent email invoice to {}.'.format( email.recipient) messages.add_message(request, messages.SUCCESS, msg_string) return HttpResponseRedirect( reverse('invoice.view', args=([invoice_id]))) else: template = get_template("invoices/email_invoice_template.html") body_initial = template.render(context={'invoice': invoice}, request=request) form = form_class( initial={ 'subject': 'Invoice for {}'.format(invoice.title), 'recipient': invoice.bill_to_email, 'body': body_initial }) return render_to_resp(request=request, template_name=template_name, context={ 'invoice': invoice, 'form': form })
def email_invoice(request, invoice_id, form_class=EmailInvoiceForm, template_name='invoices/email_invoice.html'): if not request.user.profile.is_superuser: raise Http403 invoice = get_object_or_404(Invoice, pk=invoice_id) if request.method == "POST": email = Email() form = form_class(request.POST, instance=email) if form.is_valid(): email = form.save(commit=False) email.sender_display = request.user.get_full_name() email.reply_to = request.user.email email.recipient = form.cleaned_data['recipient'] email.content_type = "html" email.recipient_cc = form.cleaned_data['cc'] attachment = form.cleaned_data['attachment'] kwargs = {} if attachment: result = invoice_pdf(request, invoice) kwargs['attachments'] = [("invoice_{}.pdf".format(invoice.id), result.getvalue(), 'application/pdf')] email.send(**kwargs) EventLog.objects.log(instance=email) msg_string = 'Successfully sent email invoice to {}.'.format(email.recipient) messages.add_message(request, messages.SUCCESS, msg_string) return HttpResponseRedirect(reverse('invoice.view', args=([invoice_id]))) else: template = get_template("invoices/email_invoice_template.html") body_initial = template.render(RequestContext(request, { 'invoice': invoice,})) form = form_class(initial={'subject': 'Invoice for {}'.format(invoice.title), 'recipient': invoice.bill_to_email, 'body': body_initial}) return render_to_response(template_name, { 'invoice': invoice, 'form': form },context_instance=RequestContext(request))