def response(self, request, queryset): if request.GET.get("export") == "pdf": if not queryset.exists(): messages.warning(request, _("No invoices found.")) return HttpResponseRedirect("?error=1") count = queryset.count() if count > settings.BATCH_MAX_ITEMS: messages.error( request, _("%s invoices in selection, that's too many.") % count) return HttpResponseRedirect("?error=1") pdf, response = pdf_response( "invoices", as_attachment=request.GET.get("disposition") == "attachment", ) for invoice in queryset: pdf.init_letter() pdf.process_invoice(invoice) pdf.restart() pdf.generate() return response if request.GET.get("export") == "xlsx": xlsx = WorkbenchXLSXDocument() xlsx.table_from_queryset(queryset) return xlsx.to_response("invoices.xlsx")
def open_items_list(request, form): if request.GET.get("export") == "xlsx": xlsx = WorkbenchXLSXDocument() xlsx.table_from_queryset(form.open_items_list()["list"].select_related( "customer", "contact__organization", "owned_by", "project__owned_by")) return xlsx.to_response("open-items-list-{}.xlsx".format( form.cleaned_data["cutoff_date"].isoformat())) return render( request, "reporting/open_items_list.html", { "form": form, "open_items_list": form.open_items_list() }, )
def response(self, request, queryset): if request.GET.get("export") == "xlsx": xlsx = WorkbenchXLSXDocument() additional = [] values = {(v.deal_id, v.type_id): v.value for v in Value.objects.filter(deal__in=queryset)} attributes = {(a.deal_id, a.attribute.group_id): a.attribute for a in DealAttribute.objects.filter( deal__in=queryset).select_related("attribute")} for vt in ValueType.objects.all(): additional.append(( "{}: {}".format(Value._meta.verbose_name, vt), (lambda id: lambda deal: values.get((deal.id, id)))(vt.id), )) for ag in AttributeGroup.objects.all(): additional.append(( "{}: {}".format(Attribute._meta.verbose_name, ag), (lambda id: lambda deal: attributes.get( (deal.id, id)))(ag.id), )) xlsx.table_from_queryset(queryset, additional=additional) return xlsx.to_response("deals.xlsx")
def response(self, request, queryset): if (request.GET.get("export") == "xlsx" and request.user.features[FEATURES.CONTROLLING]): xlsx = WorkbenchXLSXDocument() xlsx.table_from_queryset(queryset) return xlsx.to_response("absences.xlsx")