Added StockLocation API

This commit is contained in:
Oliver 2018-05-04 01:33:21 +10:00
parent 395bf23d6c
commit 3511ce29ee
2 changed files with 31 additions and 29 deletions

View File

@ -45,6 +45,27 @@ class StockFilter(FilterSet):
fields = ['quantity', 'part', 'location']
class StockLocationList(generics.ListCreateAPIView):
queryset = StockLocation.objects.all()
serializer_class = LocationSerializer
permission_classes = [
permissions.IsAuthenticatedOrReadOnly,
]
filter_backends = [
DjangoFilterBackend,
filters.SearchFilter,
filters.OrderingFilter,
]
filter_fields = [
'parent',
]
class StockList(generics.ListCreateAPIView):
"""
@ -129,32 +150,6 @@ class LocationDetail(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
class StockLocationFilter(FilterSet):
class Meta:
model = StockLocation
fields = ['parent']
class LocationList(generics.ListCreateAPIView):
"""
get:
Return a list of all StockLocation objects
(with optional query filter)
post:
Create a new StockLocation
"""
queryset = StockLocation.objects.all()
serializer_class = LocationSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
filter_backends = (DjangoFilterBackend,)
filter_class = StockLocationFilter
stock_endpoints = [
url(r'^$', StockDetail.as_view(), name='stockitem-detail'),
]
@ -168,6 +163,8 @@ stock_api_urls = [
# Detail for a single stock item
url(r'^(?P<pk>[0-9]+)/', include(stock_endpoints)),
url(r'location/?', StockLocationList.as_view(), name='api-location-list'),
url(r'location/(?P<pk>\d+)/', include(location_endpoints)),
url(r'^tree/?', StockCategoryTree.as_view(), name='api-stock-tree'),

View File

@ -67,14 +67,19 @@ class StockQuantitySerializer(serializers.ModelSerializer):
fields = ('quantity',)
class LocationSerializer(serializers.HyperlinkedModelSerializer):
class LocationSerializer(serializers.ModelSerializer):
""" Detailed information about a stock location
"""
url = serializers.CharField(source='get_absolute_url', read_only=True)
class Meta:
model = StockLocation
fields = ('url',
fields = [
'pk',
'url',
'name',
'description',
'parent',
'pathstring')
'pathstring'
]