mirror of
https://github.com/inventree/InvenTree.git
synced 2025-08-06 12:01:41 +00:00
Updated API URLs
This commit is contained in:
17
InvenTree/part/api_urls.py
Normal file
17
InvenTree/part/api_urls.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
# Display part detail
|
||||
url(r'^(?P<pk>[0-9]+)/$', views.PartDetail.as_view()),
|
||||
|
||||
# Display a single part category
|
||||
url(r'^category/(?P<pk>[0-9]+)/$', views.PartCategoryDetail.as_view()),
|
||||
|
||||
# Display a list of top-level categories
|
||||
url(r'^category/$', views.PartCategoryList.as_view()),
|
||||
|
||||
# Display list of all parts
|
||||
url(r'^$', views.PartList.as_view())
|
||||
]
|
@@ -15,6 +15,12 @@ class PartCategory(InvenTreeTree):
|
||||
verbose_name = "Part Category"
|
||||
verbose_name_plural = "Part Categories"
|
||||
|
||||
@property
|
||||
def parts(self):
|
||||
parts_list = self.part_set.all()
|
||||
print(parts_list)
|
||||
return parts_list
|
||||
|
||||
|
||||
class Part(models.Model):
|
||||
""" Represents a """
|
||||
|
@@ -4,14 +4,21 @@ from .models import Part, PartCategory, PartParameter
|
||||
|
||||
|
||||
class ParameterSerializer(serializers.ModelSerializer):
|
||||
""" Serializer for a PartParameter
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
model = PartParameter
|
||||
fields = ('name',
|
||||
fields = ('pk',
|
||||
'name',
|
||||
'value',
|
||||
'units')
|
||||
|
||||
|
||||
class PartSerializer(serializers.ModelSerializer):
|
||||
class PartDetailSerializer(serializers.ModelSerializer):
|
||||
""" Serializer for complete detail information of a part.
|
||||
Used when displaying all details of a single component.
|
||||
"""
|
||||
|
||||
params = ParameterSerializer(source='parameters', many=True)
|
||||
|
||||
@@ -26,11 +33,44 @@ class PartSerializer(serializers.ModelSerializer):
|
||||
'params')
|
||||
|
||||
|
||||
class PartCategorySerializer(serializers.ModelSerializer):
|
||||
class PartBriefSerializer(serializers.ModelSerializer):
|
||||
""" Serializer for displaying overview of a part.
|
||||
Used e.g. for displaying list of parts in a category.
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
model = Part
|
||||
fields = ('pk',
|
||||
'name',
|
||||
'IPN',
|
||||
'description',
|
||||
'category',
|
||||
'stock')
|
||||
|
||||
|
||||
class PartCategoryBriefSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = PartCategory
|
||||
fields = ('pk',
|
||||
'name',
|
||||
'description')
|
||||
|
||||
|
||||
class PartCategoryDetailSerializer(serializers.ModelSerializer):
|
||||
|
||||
# List of parts in this category
|
||||
parts = PartBriefSerializer(many=True)
|
||||
|
||||
# List of child categories under this one
|
||||
children = PartCategoryBriefSerializer(many=True)
|
||||
|
||||
class Meta:
|
||||
model = PartCategory
|
||||
fields = ('pk',
|
||||
'name',
|
||||
'description',
|
||||
'parent',
|
||||
'path')
|
||||
'path',
|
||||
'children',
|
||||
'parts')
|
||||
|
@@ -3,15 +3,9 @@ from django.conf.urls import url
|
||||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
# Display part detail
|
||||
url(r'^(?P<pk>[0-9]+)/$', views.PartDetail.as_view()),
|
||||
|
||||
# Display a single part category
|
||||
url(r'^category/(?P<pk>[0-9]+)/$', views.PartCategoryDetail.as_view()),
|
||||
|
||||
# Display a list of top-level categories
|
||||
url(r'^category/$', views.PartCategoryList.as_view()),
|
||||
|
||||
# Display list of parts
|
||||
url(r'^$', views.PartList.as_view())
|
||||
# part landing page
|
||||
url(r'^$', views.part_index),
|
||||
|
||||
# part category landing page
|
||||
url(r'^category/$', views.category_index)
|
||||
]
|
||||
|
@@ -4,32 +4,38 @@ from django.http import HttpResponse, Http404
|
||||
from rest_framework import generics
|
||||
|
||||
from .models import PartCategory, Part
|
||||
from .serializers import PartSerializer, PartCategorySerializer
|
||||
from .serializers import PartBriefSerializer, PartDetailSerializer
|
||||
from .serializers import PartCategoryBriefSerializer, PartCategoryDetailSerializer
|
||||
|
||||
|
||||
def index(request):
|
||||
def part_index(request):
|
||||
return HttpResponse("Hello world. This is the parts page")
|
||||
|
||||
def category_index(request):
|
||||
return HttpResponse("This is the category page")
|
||||
|
||||
class PartDetail(generics.RetrieveAPIView):
|
||||
|
||||
queryset = Part.objects.all()
|
||||
serializer_class = PartSerializer
|
||||
serializer_class = PartDetailSerializer
|
||||
|
||||
|
||||
class PartList(generics.ListAPIView):
|
||||
|
||||
queryset = Part.objects.all()
|
||||
serializer_class = PartSerializer
|
||||
serializer_class = PartBriefSerializer
|
||||
|
||||
|
||||
class PartCategoryDetail(generics.RetrieveAPIView):
|
||||
|
||||
""" Return information on a single PartCategory
|
||||
"""
|
||||
queryset = PartCategory.objects.all()
|
||||
serializer_class = PartCategorySerializer
|
||||
serializer_class = PartCategoryDetailSerializer
|
||||
|
||||
|
||||
class PartCategoryList(generics.ListAPIView):
|
||||
|
||||
queryset = PartCategory.objects.all()
|
||||
serializer_class = PartCategorySerializer
|
||||
""" Return a list of all top-level part categories.
|
||||
Categories are considered "top-level" if they do not have a parent
|
||||
"""
|
||||
queryset = PartCategory.objects.filter(parent=None)
|
||||
serializer_class = PartCategoryBriefSerializer
|
||||
|
Reference in New Issue
Block a user