mirror of
https://github.com/inventree/InvenTree.git
synced 2025-05-03 22:08:49 +00:00
Adds ability to download purchase order line item table
This commit is contained in:
parent
f6b574a127
commit
846899fa53
@ -16,10 +16,11 @@ from rest_framework.response import Response
|
|||||||
from company.models import SupplierPart
|
from company.models import SupplierPart
|
||||||
|
|
||||||
from InvenTree.filters import InvenTreeOrderingFilter
|
from InvenTree.filters import InvenTreeOrderingFilter
|
||||||
from InvenTree.helpers import str2bool
|
from InvenTree.helpers import str2bool, DownloadFile
|
||||||
from InvenTree.api import AttachmentMixin
|
from InvenTree.api import AttachmentMixin
|
||||||
from InvenTree.status_codes import PurchaseOrderStatus, SalesOrderStatus
|
from InvenTree.status_codes import PurchaseOrderStatus, SalesOrderStatus
|
||||||
|
|
||||||
|
from order.admin import POLineItemResource
|
||||||
import order.models as models
|
import order.models as models
|
||||||
import order.serializers as serializers
|
import order.serializers as serializers
|
||||||
from part.models import Part
|
from part.models import Part
|
||||||
@ -370,6 +371,34 @@ class POLineItemList(generics.ListCreateAPIView):
|
|||||||
|
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
def list(self, request, *args, **kwargs):
|
||||||
|
|
||||||
|
queryset = self.filter_queryset(self.get_queryset())
|
||||||
|
|
||||||
|
# Check if we wish to export the queried data to a file
|
||||||
|
export_format = request.query_params.get('export', None)
|
||||||
|
|
||||||
|
if export_format:
|
||||||
|
export_format = str(export_format).strip().lower()
|
||||||
|
|
||||||
|
if export_format in ['csv', 'tsv', 'xls', 'xlsx']:
|
||||||
|
dataset = POLineItemResource().export(queryset=queryset)
|
||||||
|
|
||||||
|
filedata = dataset.export(export_format)
|
||||||
|
|
||||||
|
filename = f"InvenTree_PurchaseOrderData.{export_format}"
|
||||||
|
|
||||||
|
return DownloadFile(filedata, filename)
|
||||||
|
|
||||||
|
page = self.paginate_queryset(queryset)
|
||||||
|
|
||||||
|
if page is not None:
|
||||||
|
serializer = self.get_serializer(page, many=True)
|
||||||
|
return self.get_paginated_response(serializer.data)
|
||||||
|
|
||||||
|
serializer = self.get_serializer(queryset, many=True)
|
||||||
|
return Response(serializer.data)
|
||||||
|
|
||||||
filter_backends = [
|
filter_backends = [
|
||||||
rest_filters.DjangoFilterBackend,
|
rest_filters.DjangoFilterBackend,
|
||||||
filters.SearchFilter,
|
filters.SearchFilter,
|
||||||
|
@ -1051,7 +1051,7 @@ function loadPurchaseOrderLineItemTable(table, options={}) {
|
|||||||
|
|
||||||
var target = options.filter_target || '#filter-list-purchase-order-lines';
|
var target = options.filter_target || '#filter-list-purchase-order-lines';
|
||||||
|
|
||||||
setupFilterList('purchaseorderlineitem', $(table), target);
|
setupFilterList('purchaseorderlineitem', $(table), target, {download: true});
|
||||||
|
|
||||||
function setupCallbacks() {
|
function setupCallbacks() {
|
||||||
if (options.allow_edit) {
|
if (options.allow_edit) {
|
||||||
@ -1078,7 +1078,7 @@ function loadPurchaseOrderLineItemTable(table, options={}) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
})
|
});
|
||||||
|
|
||||||
// Callback for "edit" button
|
// Callback for "edit" button
|
||||||
$(table).find('.button-line-edit').click(function() {
|
$(table).find('.button-line-edit').click(function() {
|
||||||
@ -2583,7 +2583,7 @@ function loadSalesOrderLineItemTable(table, options={}) {
|
|||||||
fields: fields,
|
fields: fields,
|
||||||
data: data,
|
data: data,
|
||||||
title: '{% trans "Duplicate Line Item" %}',
|
title: '{% trans "Duplicate Line Item" %}',
|
||||||
onSuccess: function(response) {
|
onSuccess: function(response) {
|
||||||
$(table).bootstrapTable('refresh');
|
$(table).bootstrapTable('refresh');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user