mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-30 04:26:44 +00:00
JSON api for stock items
This commit is contained in:
parent
9cc0780367
commit
f74e176579
@ -89,12 +89,10 @@ TEMPLATES = [
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
print(os.path.join(BASE_DIR, 'templates'))
|
|
||||||
|
|
||||||
REST_FRAMEWORK = {
|
REST_FRAMEWORK = {
|
||||||
'EXCEPTION_HANDLER': 'InvenTree.utils.api_exception_handler',
|
'EXCEPTION_HANDLER': 'InvenTree.utils.api_exception_handler',
|
||||||
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
|
# 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
|
||||||
'PAGE_SIZE': 50,
|
# 'PAGE_SIZE': 50,
|
||||||
}
|
}
|
||||||
|
|
||||||
WSGI_APPLICATION = 'InvenTree.wsgi.application'
|
WSGI_APPLICATION = 'InvenTree.wsgi.application'
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
from django_filters.rest_framework import FilterSet, DjangoFilterBackend
|
from django_filters.rest_framework import FilterSet, DjangoFilterBackend
|
||||||
from django_filters import NumberFilter
|
from django_filters import NumberFilter
|
||||||
|
|
||||||
from rest_framework import generics, permissions, response
|
from rest_framework import generics, permissions, response, filters
|
||||||
|
|
||||||
from django.conf.urls import url
|
from django.conf.urls import url, include
|
||||||
|
|
||||||
# from InvenTree.models import FilterChildren
|
# from InvenTree.models import FilterChildren
|
||||||
from .models import StockLocation, StockItem
|
from .models import StockLocation, StockItem
|
||||||
@ -57,10 +57,26 @@ class StockList(generics.ListCreateAPIView):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
queryset = StockItem.objects.all()
|
queryset = StockItem.objects.all()
|
||||||
|
|
||||||
serializer_class = StockItemSerializer
|
serializer_class = StockItemSerializer
|
||||||
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
|
||||||
filter_backends = (DjangoFilterBackend,)
|
permission_classes = [
|
||||||
filter_class = StockFilter
|
permissions.IsAuthenticatedOrReadOnly,
|
||||||
|
]
|
||||||
|
|
||||||
|
filter_backends = [
|
||||||
|
DjangoFilterBackend,
|
||||||
|
filters.SearchFilter,
|
||||||
|
filters.OrderingFilter,
|
||||||
|
]
|
||||||
|
|
||||||
|
filter_fields = [
|
||||||
|
'part',
|
||||||
|
'location',
|
||||||
|
'supplier_part',
|
||||||
|
'customer',
|
||||||
|
'status',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class StockStocktakeEndpoint(generics.UpdateAPIView):
|
class StockStocktakeEndpoint(generics.UpdateAPIView):
|
||||||
@ -138,6 +154,22 @@ class LocationList(generics.ListCreateAPIView):
|
|||||||
filter_class = StockLocationFilter
|
filter_class = StockLocationFilter
|
||||||
|
|
||||||
|
|
||||||
stock_api_urls = [
|
stock_endpoints = [
|
||||||
url(r'^tree/?', StockCategoryTree.as_view(), name='api-stock-tree'),
|
url(r'^$', StockDetail.as_view(), name='stockitem-detail'),
|
||||||
|
]
|
||||||
|
|
||||||
|
location_endpoints = [
|
||||||
|
url(r'^$', LocationDetail.as_view(), name='stocklocation-detail'),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
stock_api_urls = [
|
||||||
|
# Detail for a single stock item
|
||||||
|
url(r'^(?P<pk>[0-9]+)/', include(stock_endpoints)),
|
||||||
|
|
||||||
|
url(r'location/(?P<pk>\d+)/', include(location_endpoints)),
|
||||||
|
|
||||||
|
url(r'^tree/?', StockCategoryTree.as_view(), name='api-stock-tree'),
|
||||||
|
|
||||||
|
url(r'^.*$', StockList.as_view(), name='api-stock-list'),
|
||||||
]
|
]
|
@ -3,32 +3,40 @@ from rest_framework import serializers
|
|||||||
from .models import StockItem, StockLocation
|
from .models import StockItem, StockLocation
|
||||||
|
|
||||||
|
|
||||||
class StockItemSerializer(serializers.HyperlinkedModelSerializer):
|
class StockItemSerializer(serializers.ModelSerializer):
|
||||||
""" Serializer for a StockItem
|
""" Serializer for a StockItem
|
||||||
"""
|
"""
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = StockItem
|
model = StockItem
|
||||||
fields = ('url',
|
fields = [
|
||||||
'part',
|
'pk',
|
||||||
'supplier_part',
|
'url',
|
||||||
'location',
|
'part',
|
||||||
'quantity',
|
'supplier_part',
|
||||||
'status',
|
'location',
|
||||||
'notes',
|
'belongs_to',
|
||||||
'updated',
|
'customer',
|
||||||
'stocktake_date',
|
'quantity',
|
||||||
'stocktake_user',
|
'serial',
|
||||||
'review_needed',
|
'batch',
|
||||||
'expected_arrival')
|
'status',
|
||||||
|
'notes',
|
||||||
|
'updated',
|
||||||
|
'stocktake_date',
|
||||||
|
'stocktake_user',
|
||||||
|
'review_needed',
|
||||||
|
]
|
||||||
|
|
||||||
""" These fields are read-only in this context.
|
""" These fields are read-only in this context.
|
||||||
They can be updated by accessing the appropriate API endpoints
|
They can be updated by accessing the appropriate API endpoints
|
||||||
"""
|
"""
|
||||||
read_only_fields = ('stocktake_date',
|
read_only_fields = [
|
||||||
'stocktake_user',
|
'stocktake_date',
|
||||||
'updated',
|
'stocktake_user',
|
||||||
'quantity',)
|
'updated',
|
||||||
|
'quantity',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class StockQuantitySerializer(serializers.ModelSerializer):
|
class StockQuantitySerializer(serializers.ModelSerializer):
|
||||||
|
@ -1,33 +1,6 @@
|
|||||||
from django.conf.urls import url, include
|
from django.conf.urls import url, include
|
||||||
|
|
||||||
from . import views
|
from . import views
|
||||||
from . import api
|
|
||||||
|
|
||||||
stock_endpoints = [
|
|
||||||
url(r'^$', api.StockDetail.as_view(), name='stockitem-detail'),
|
|
||||||
|
|
||||||
url(r'^stocktake/?$', api.StockStocktakeEndpoint.as_view(), name='stockitem-stocktake'),
|
|
||||||
|
|
||||||
url(r'^add-stock/?$', api.AddStockEndpoint.as_view(), name='stockitem-add-stock'),
|
|
||||||
]
|
|
||||||
|
|
||||||
stock_api_urls = [
|
|
||||||
# Detail for a single stock item
|
|
||||||
url(r'^(?P<pk>[0-9]+)/', include(stock_endpoints)),
|
|
||||||
|
|
||||||
# List all stock items, with optional filters
|
|
||||||
url(r'^\?.*/?$', api.StockList.as_view()),
|
|
||||||
url(r'^$', api.StockList.as_view()),
|
|
||||||
]
|
|
||||||
|
|
||||||
stock_api_loc_urls = [
|
|
||||||
url(r'^(?P<pk>[0-9]+)/?$', api.LocationDetail.as_view(), name='stocklocation-detail'),
|
|
||||||
|
|
||||||
url(r'^\?.*/?$', api.LocationList.as_view()),
|
|
||||||
|
|
||||||
url(r'^$', api.LocationList.as_view())
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
# URL list for web interface
|
# URL list for web interface
|
||||||
stock_location_detail_urls = [
|
stock_location_detail_urls = [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user