From f7107008f08aa5ccceac32f9929103a64bae08b6 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sat, 15 Apr 2017 00:10:35 +1000 Subject: [PATCH] Part API now hyperlinked --- InvenTree/part/serializers.py | 16 +++++----------- InvenTree/part/urls.py | 32 ++++++++++++++++---------------- InvenTree/project/serializers.py | 12 +----------- 3 files changed, 22 insertions(+), 38 deletions(-) diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index 47bbaedf40..bc38ca309d 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -17,14 +17,14 @@ class PartParameterSerializer(serializers.ModelSerializer): 'units') -class PartSerializer(serializers.ModelSerializer): +class PartSerializer(serializers.HyperlinkedModelSerializer): """ Serializer for complete detail information of a part. Used when displaying all details of a single component. """ class Meta: model = Part - fields = ('pk', + fields = ('url', 'name', 'IPN', 'description', @@ -32,21 +32,15 @@ class PartSerializer(serializers.ModelSerializer): 'stock') -class PartCategorySerializer(serializers.ModelSerializer): - - children = serializers.PrimaryKeyRelatedField(many=True, read_only=True) - - parts = serializers.PrimaryKeyRelatedField(many=True, read_only=True) +class PartCategorySerializer(serializers.HyperlinkedModelSerializer): class Meta: model = PartCategory - fields = ('pk', + fields = ('url', 'name', 'description', 'parent', - 'path', - 'children', - 'parts') + 'path') class PartTemplateSerializer(serializers.ModelSerializer): diff --git a/InvenTree/part/urls.py b/InvenTree/part/urls.py index e2481fab36..72fffc5b32 100644 --- a/InvenTree/part/urls.py +++ b/InvenTree/part/urls.py @@ -10,29 +10,29 @@ from . import views categorypatterns = [ # Part category detail - url(r'^(?P[0-9]+)/?$', views.PartCategoryDetail.as_view(), name='part-category-detail'), + url(r'^(?P[0-9]+)/?$', views.PartCategoryDetail.as_view(), name='partcategory-detail'), # List of top-level categories - url(r'^\?*.*/?$', views.PartCategoryList.as_view(), name='part-category-list'), - url(r'^$', views.PartCategoryList.as_view(), name='part-category-list') + url(r'^\?*.*/?$', views.PartCategoryList.as_view()), + url(r'^$', views.PartCategoryList.as_view()) ] partparampatterns = [ # Detail of a single part parameter - url(r'^(?P[0-9]+)/?$', views.PartParamDetail.as_view(), name='part-parameter-detail'), + url(r'^(?P[0-9]+)/?$', views.PartParamDetail.as_view(), name='partparameter-detail'), # Parameters associated with a particular part - url(r'^\?.*/?$', views.PartParamList.as_view(), name='part-parameter-list'), - url(r'^$', views.PartParamList.as_view(), name='part-parameter-list'), + url(r'^\?.*/?$', views.PartParamList.as_view()), + url(r'^$', views.PartParamList.as_view()), ] parttemplatepatterns = [ # Detail of a single part field template - url(r'^(?P[0-9]+)/?$', views.PartTemplateDetail.as_view(), name='part-template-detail'), + url(r'^(?P[0-9]+)/?$', views.PartTemplateDetail.as_view(), name='partparametertemplate-detail'), # List all part field templates - url(r'^\?.*/?$', views.PartTemplateList.as_view(), name='part-template-list'), - url(r'^$', views.PartTemplateList.as_view(), name='part-template-list') + url(r'^\?.*/?$', views.PartTemplateList.as_view()), + url(r'^$', views.PartTemplateList.as_view()) ] """ Top-level URL patterns for the Part app: @@ -42,19 +42,19 @@ parttemplatepatterns = [ /part/category -> (refer to categorypatterns) """ urlpatterns = [ - # Individual part - url(r'^(?P[0-9]+)/?$', views.PartDetail.as_view(), name='part-detail'), - # Part categories url(r'^category/', include(categorypatterns)), # Part parameters - url(r'^parameters/', include(partparampatterns)), + url(r'^parameter/', include(partparampatterns)), # Part templates - url(r'^templates/', include(parttemplatepatterns)), + url(r'^template/', include(parttemplatepatterns)), + + # Individual part + url(r'^(?P[0-9]+)/?$', views.PartDetail.as_view(), name='part-detail'), # List parts with optional filters - url(r'^\?.*/?$', views.PartList.as_view(), name='part-list'), - url(r'^$', views.PartList.as_view(), name='part-list'), + url(r'^\?.*/?$', views.PartList.as_view()), + url(r'^$', views.PartList.as_view()), ] diff --git a/InvenTree/project/serializers.py b/InvenTree/project/serializers.py index 91bc79e619..1b854da4f1 100644 --- a/InvenTree/project/serializers.py +++ b/InvenTree/project/serializers.py @@ -26,20 +26,10 @@ class ProjectSerializer(serializers.HyperlinkedModelSerializer): class ProjectCategorySerializer(serializers.HyperlinkedModelSerializer): - children = serializers.HyperlinkedRelatedField(many=True, - read_only=True, - view_name='projectcategory-detail') - - projects = serializers.HyperlinkedRelatedField(many=True, - read_only=True, - view_name='project-detail') - class Meta: model = ProjectCategory fields = ('url', 'name', 'description', 'parent', - 'path', - 'children', - 'projects') + 'path')