from django.views.generic import View from django.shortcuts import redirect, render, get_object_or_404 from payments import get_payment_model, RedirectNeeded from rules.contrib.views import PermissionRequiredMixin from aleksis.core.views import RenderPDFView from .models.invoice import Invoice class GetInvoicePDF(PermissionRequiredMixin, RenderPDFView): permission_required = "tezor.can_print_invoice" def get_context_data(self, *args, **kwargs): context = super().get_context_data(*args, **kwargs) invoice = Invoice.objects.get(id=self.kwargs["pk"]) self.template_name = invoice.group.template_name context["invoice"] = invoice print(invoice.group.__dict__) return context def payment_details(request, token): payment = get_object_or_404(get_payment_model(), token=token) try: form = payment.get_form(data=request.POST or None) except RedirectNeeded as redirect_to: return redirect(str(redirect_to)) context = { "form": form, "payment": payment, } return render(request, "tezor/invoice/payment.html", context)