diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index 63014a36d1..ce47010cb1 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -3,12 +3,23 @@ from django.contrib import admin from rest_framework.documentation import include_docs_urls +from part.urls import part_urls, part_cat_urls, part_param_urls, part_param_template_urls + admin.site.site_header = "InvenTree Admin" apipatterns = [ + + # Stock URLs url(r'^stock/', include('stock.urls')), url(r'^stock-location/', include('stock.location_urls')), - url(r'^part/', include('part.urls')), + + # Part URLs + url(r'^part/', include(part_urls)), + url(r'^part-category/', include(part_cat_urls)), + url(r'^part-param/', include(part_param_urls)), + url(r'^part-param-template/', include(part_param_template_urls)), + + # Supplier URLs url(r'^supplier/', include('supplier.urls')), url(r'^supplier-part/', include('supplier.part_urls')), url(r'^price-break/', include('supplier.price_urls')), diff --git a/InvenTree/part/urls.py b/InvenTree/part/urls.py index 72fffc5b32..057ea18233 100644 --- a/InvenTree/part/urls.py +++ b/InvenTree/part/urls.py @@ -2,12 +2,7 @@ from django.conf.urls import url, include from . import views -""" URL patterns associated with part categories: -/category -> List all top-level categories -/category/ -> Detail view of given category -/category/new -> Create a new category -""" -categorypatterns = [ +part_cat_urls = [ # Part category detail url(r'^(?P[0-9]+)/?$', views.PartCategoryDetail.as_view(), name='partcategory-detail'), @@ -17,7 +12,7 @@ categorypatterns = [ url(r'^$', views.PartCategoryList.as_view()) ] -partparampatterns = [ +part_param_urls = [ # Detail of a single part parameter url(r'^(?P[0-9]+)/?$', views.PartParamDetail.as_view(), name='partparameter-detail'), @@ -26,7 +21,7 @@ partparampatterns = [ url(r'^$', views.PartParamList.as_view()), ] -parttemplatepatterns = [ +part_param_template_urls = [ # Detail of a single part field template url(r'^(?P[0-9]+)/?$', views.PartTemplateDetail.as_view(), name='partparametertemplate-detail'), @@ -35,21 +30,7 @@ parttemplatepatterns = [ url(r'^$', views.PartTemplateList.as_view()) ] -""" Top-level URL patterns for the Part app: -/part/ -> List all parts -/part/new -> Create a new part -/part/ -> (refer to partdetailpatterns) -/part/category -> (refer to categorypatterns) -""" -urlpatterns = [ - # Part categories - url(r'^category/', include(categorypatterns)), - - # Part parameters - url(r'^parameter/', include(partparampatterns)), - - # Part templates - url(r'^template/', include(parttemplatepatterns)), +part_urls = [ # Individual part url(r'^(?P[0-9]+)/?$', views.PartDetail.as_view(), name='part-detail'), diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py index eb930606b1..79e190ada2 100644 --- a/InvenTree/part/views.py +++ b/InvenTree/part/views.py @@ -11,7 +11,17 @@ from .serializers import PartTemplateSerializer class PartDetail(generics.RetrieveUpdateDestroyAPIView): - """ Return information on a single part + """ + + get: + Return detail on a single Part + + post: + Update data for a single Part + + delete: + Remove a part from the database + """ queryset = Part.objects.all() serializer_class = PartSerializer @@ -19,7 +29,13 @@ class PartDetail(generics.RetrieveUpdateDestroyAPIView): class PartParamList(generics.ListCreateAPIView): - """ Return all parameters associated with a particular part + """ + + get: + Return a list of all part parameters (with optional filters) + + post: + Create a new part parameter """ def get_queryset(self): part_id = self.request.query_params.get('part', None) @@ -34,7 +50,17 @@ class PartParamList(generics.ListCreateAPIView): class PartParamDetail(generics.RetrieveUpdateDestroyAPIView): - """ Detail view of a single PartParameter + """ + + get: + Detail view of a single PartParameter + + post: + Update data for a PartParameter + + delete: + Remove a PartParameter from the database + """ queryset = PartParameter.objects.all() @@ -54,7 +80,13 @@ class PartFilter(django_filters.rest_framework.FilterSet): class PartList(generics.ListCreateAPIView): - """ List of parts, with optional filters + """ + + get: + List of Parts, with optional filters + + post: + Create a new Part """ def get_queryset(self): @@ -73,7 +105,17 @@ class PartList(generics.ListCreateAPIView): class PartCategoryDetail(generics.RetrieveUpdateDestroyAPIView): - """ Return information on a single PartCategory + """ + + get: + Return information on a single PartCategory + + post: + Update a PartCategory + + delete: + Remove a PartCategory + """ queryset = PartCategory.objects.all() serializer_class = PartCategorySerializer @@ -81,8 +123,14 @@ class PartCategoryDetail(generics.RetrieveUpdateDestroyAPIView): class PartCategoryList(generics.ListCreateAPIView): - """ Return a list of all top-level part categories. - Categories are considered "top-level" if they do not have a parent + """ + + get: + Return a list of all categories + (with optional filters) + + post: + Create a new PartCategory """ def get_queryset(self): @@ -100,6 +148,18 @@ class PartCategoryList(generics.ListCreateAPIView): class PartTemplateDetail(generics.RetrieveUpdateDestroyAPIView): + """ + + get: + Return detail on a single PartParameterTemplate object + + post: + Update a PartParameterTemplate object + + delete: + Remove a PartParameterTemplate object + + """ queryset = PartParameterTemplate.objects.all() serializer_class = PartTemplateSerializer @@ -107,6 +167,16 @@ class PartTemplateDetail(generics.RetrieveUpdateDestroyAPIView): class PartTemplateList(generics.ListCreateAPIView): + """ + + get: + Return a list of all PartParameterTemplate objects + (with optional query filters) + + post: + Create a new PartParameterTemplate object + + """ queryset = PartParameterTemplate.objects.all() serializer_class = PartTemplateSerializer