mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Refactor stock_list endpoint to use the new mixin
This commit is contained in:
parent
650d082eca
commit
a77d4b97b4
@ -33,7 +33,7 @@ from company.serializers import CompanySerializer, SupplierPartSerializer
|
|||||||
|
|
||||||
from InvenTree.helpers import str2bool, isNull, extract_serial_numbers
|
from InvenTree.helpers import str2bool, isNull, extract_serial_numbers
|
||||||
from InvenTree.helpers import DownloadFile
|
from InvenTree.helpers import DownloadFile
|
||||||
from InvenTree.api import AttachmentMixin
|
from InvenTree.api import AttachmentMixin, APIDownloadMixin
|
||||||
from InvenTree.filters import InvenTreeOrderingFilter
|
from InvenTree.filters import InvenTreeOrderingFilter
|
||||||
|
|
||||||
from order.models import PurchaseOrder
|
from order.models import PurchaseOrder
|
||||||
@ -505,7 +505,7 @@ class StockFilter(rest_filters.FilterSet):
|
|||||||
updated_after = rest_filters.DateFilter(label='Updated after', field_name='updated', lookup_expr='gte')
|
updated_after = rest_filters.DateFilter(label='Updated after', field_name='updated', lookup_expr='gte')
|
||||||
|
|
||||||
|
|
||||||
class StockList(generics.ListCreateAPIView):
|
class StockList(APIDownloadMixin, generics.ListCreateAPIView):
|
||||||
""" API endpoint for list view of Stock objects
|
""" API endpoint for list view of Stock objects
|
||||||
|
|
||||||
- GET: Return a list of all StockItem objects (with optional query filters)
|
- GET: Return a list of all StockItem objects (with optional query filters)
|
||||||
@ -646,6 +646,22 @@ class StockList(generics.ListCreateAPIView):
|
|||||||
|
|
||||||
return Response(response_data, status=status.HTTP_201_CREATED, headers=self.get_success_headers(serializer.data))
|
return Response(response_data, status=status.HTTP_201_CREATED, headers=self.get_success_headers(serializer.data))
|
||||||
|
|
||||||
|
def download_queryset(self, queryset, export_format):
|
||||||
|
"""
|
||||||
|
Download this queryset as a file.
|
||||||
|
Uses the APIDownloadMixin mixin class
|
||||||
|
"""
|
||||||
|
dataset = StockItemResource().export(queryset=queryset)
|
||||||
|
|
||||||
|
filedata = dataset.export(export_format)
|
||||||
|
|
||||||
|
filename = 'InvenTree_StockItems_{date}.{fmt}'.format(
|
||||||
|
date=datetime.now().strftime("%d-%b-%Y"),
|
||||||
|
fmt=export_format
|
||||||
|
)
|
||||||
|
|
||||||
|
return DownloadFile(filedata, filename)
|
||||||
|
|
||||||
def list(self, request, *args, **kwargs):
|
def list(self, request, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
Override the 'list' method, as the StockLocation objects
|
Override the 'list' method, as the StockLocation objects
|
||||||
@ -658,25 +674,6 @@ class StockList(generics.ListCreateAPIView):
|
|||||||
|
|
||||||
params = request.query_params
|
params = request.query_params
|
||||||
|
|
||||||
# Check if we wish to export the queried data to a file.
|
|
||||||
# If so, skip pagination!
|
|
||||||
export_format = params.get('export', None)
|
|
||||||
|
|
||||||
if export_format:
|
|
||||||
export_format = str(export_format).strip().lower()
|
|
||||||
|
|
||||||
if export_format in ['csv', 'tsv', 'xls', 'xlsx']:
|
|
||||||
dataset = StockItemResource().export(queryset=queryset)
|
|
||||||
|
|
||||||
filedata = dataset.export(export_format)
|
|
||||||
|
|
||||||
filename = 'InvenTree_Stocktake_{date}.{fmt}'.format(
|
|
||||||
date=datetime.now().strftime("%d-%b-%Y"),
|
|
||||||
fmt=export_format
|
|
||||||
)
|
|
||||||
|
|
||||||
return DownloadFile(filedata, filename)
|
|
||||||
|
|
||||||
page = self.paginate_queryset(queryset)
|
page = self.paginate_queryset(queryset)
|
||||||
|
|
||||||
if page is not None:
|
if page is not None:
|
||||||
|
Loading…
Reference in New Issue
Block a user