From 858a7fe089e3baff986614985f230ba740dc2a73 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Fri, 14 Apr 2017 21:44:01 +1000 Subject: [PATCH] Tweaking URL patterns --- InvenTree/InvenTree/urls.py | 14 +++++++------- InvenTree/part/urls.py | 26 +++++++++++++++----------- InvenTree/project/urls.py | 28 +++++++++++----------------- InvenTree/stock/serializers.py | 13 +------------ InvenTree/stock/urls.py | 13 ++++++++----- InvenTree/stock/views.py | 6 +++--- InvenTree/track/urls.py | 12 +++++++----- 7 files changed, 52 insertions(+), 60 deletions(-) diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index 5ab4076fad..d750b6388c 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -17,13 +17,13 @@ def Inventree404(self): urlpatterns = [ - url(r'^stock/?', include('stock.urls')), - url(r'^part/?', include('part.urls')), - url(r'^supplier/?', include('supplier.urls')), - url(r'^track/?', include('track.urls')), - url(r'^project/?', include('project.urls')), - url(r'^admin/?', admin.site.urls), - url(r'^auth/?', include('rest_framework.urls', namespace='rest_framework')), + url(r'^stock/', include('stock.urls')), + url(r'^part/', include('part.urls')), + url(r'^supplier/', include('supplier.urls')), + url(r'^track/', include('track.urls')), + url(r'^project/', include('project.urls')), + url(r'^admin/', admin.site.urls), + url(r'^auth/', include('rest_framework.urls', namespace='rest_framework')), # Any other URL url(r'', Inventree404) diff --git a/InvenTree/part/urls.py b/InvenTree/part/urls.py index bb7595a271..e2481fab36 100644 --- a/InvenTree/part/urls.py +++ b/InvenTree/part/urls.py @@ -10,26 +10,29 @@ from . import views categorypatterns = [ # Part category detail - url(r'^(?P[0-9]+)/?$', views.PartCategoryDetail.as_view()), + url(r'^(?P[0-9]+)/?$', views.PartCategoryDetail.as_view(), name='part-category-detail'), # List of top-level categories - url(r'^\?*[^/]*/?$', views.PartCategoryList.as_view()) + url(r'^\?*.*/?$', views.PartCategoryList.as_view(), name='part-category-list'), + url(r'^$', views.PartCategoryList.as_view(), name='part-category-list') ] partparampatterns = [ # Detail of a single part parameter - url(r'^(?P[0-9]+)/?$', views.PartParamDetail.as_view()), + url(r'^(?P[0-9]+)/?$', views.PartParamDetail.as_view(), name='part-parameter-detail'), # Parameters associated with a particular part - url(r'^\?*[^/]*/?$', views.PartParamList.as_view()), + url(r'^\?.*/?$', views.PartParamList.as_view(), name='part-parameter-list'), + url(r'^$', views.PartParamList.as_view(), name='part-parameter-list'), ] parttemplatepatterns = [ # Detail of a single part field template - url(r'^(?P[0-9]+)/?$', views.PartTemplateDetail.as_view()), + url(r'^(?P[0-9]+)/?$', views.PartTemplateDetail.as_view(), name='part-template-detail'), # List all part field templates - url(r'^$', views.PartTemplateList.as_view()) + url(r'^\?.*/?$', views.PartTemplateList.as_view(), name='part-template-list'), + url(r'^$', views.PartTemplateList.as_view(), name='part-template-list') ] """ Top-level URL patterns for the Part app: @@ -40,17 +43,18 @@ parttemplatepatterns = [ """ urlpatterns = [ # Individual part - url(r'^(?P[0-9]+)/?$', views.PartDetail.as_view()), + url(r'^(?P[0-9]+)/?$', views.PartDetail.as_view(), name='part-detail'), # Part categories - url(r'^category/?', include(categorypatterns)), + url(r'^category/', include(categorypatterns)), # Part parameters - url(r'^parameters/?', include(partparampatterns)), + url(r'^parameters/', include(partparampatterns)), # Part templates - url(r'^templates/?', include(parttemplatepatterns)), + url(r'^templates/', include(parttemplatepatterns)), # List parts with optional filters - url(r'^\?*[^/]*/?$', views.PartList.as_view()), + url(r'^\?.*/?$', views.PartList.as_view(), name='part-list'), + url(r'^$', views.PartList.as_view(), name='part-list'), ] diff --git a/InvenTree/project/urls.py b/InvenTree/project/urls.py index d0f50bac56..ffd14bc6e3 100644 --- a/InvenTree/project/urls.py +++ b/InvenTree/project/urls.py @@ -2,41 +2,35 @@ from django.conf.urls import url, include from . import views -""" URL patterns associated with project -/project/ -> Detail view of single project -/project//parts -> Detail all parts associated with project -""" -projectdetailpatterns = [ - # Single project detail - url(r'^$', views.ProjectDetail.as_view()), -] - projectpartpatterns = [ # Detail of a single project part - url(r'^(?P[0-9]+)/?$', views.ProjectPartDetail.as_view()), + url(r'^(?P[0-9]+)/?$', views.ProjectPartDetail.as_view(), name='project-part-detail'), # List project parts, with optional filters - url(r'^\?*[^/]*/?$', views.ProjectPartsList.as_view()), + url(r'^\?.*/?$', views.ProjectPartsList.as_view(), name='project-part-list'), + url(r'^$', views.ProjectPartsList.as_view(), name='project-part-list'), ] projectcategorypatterns = [ # Detail of a single project category - url(r'^(?P[0-9]+)/?$', views.ProjectCategoryDetail.as_view()), + url(r'^(?P[0-9]+)/?$', views.ProjectCategoryDetail.as_view(), name='project-category-detail'), # List of project categories, with filters - url(r'^\?*[^/]*/?$', views.ProjectCategoryList.as_view()), + url(r'^\?.*/?$', views.ProjectCategoryList.as_view(), name='project-category-list'), + url(r'^$', views.ProjectCategoryList.as_view(), name='project-category-list'), ] urlpatterns = [ # Individual project URL - url(r'^(?P[0-9]+)/?', include(projectdetailpatterns)), + url(r'^(?P[0-9]+)/?$', views.ProjectDetail.as_view(), name='project-detail'), # List of all projects - url(r'^$', views.ProjectList.as_view()), + url(r'^\?.*/?$', views.ProjectList.as_view(), name='project-list'), + url(r'^$', views.ProjectList.as_view(), name='project-list'), # Project parts - url(r'^parts/?', include(projectpartpatterns)), + url(r'^parts/', include(projectpartpatterns)), # Project categories - url(r'^category/?', include(projectcategorypatterns)), + url(r'^category/', include(projectcategorypatterns)), ] diff --git a/InvenTree/stock/serializers.py b/InvenTree/stock/serializers.py index a542edf150..6a02db0439 100644 --- a/InvenTree/stock/serializers.py +++ b/InvenTree/stock/serializers.py @@ -20,18 +20,7 @@ class StockItemSerializer(serializers.ModelSerializer): 'expected_arrival') -class LocationBriefSerializer(serializers.ModelSerializer): - """ Brief information about a stock location - """ - - class Meta: - model = StockLocation - fields = ('pk', - 'name', - 'description') - - -class LocationDetailSerializer(serializers.ModelSerializer): +class LocationSerializer(serializers.ModelSerializer): """ Detailed information about a stock location """ diff --git a/InvenTree/stock/urls.py b/InvenTree/stock/urls.py index b3496e5768..ad1e2ac28a 100644 --- a/InvenTree/stock/urls.py +++ b/InvenTree/stock/urls.py @@ -3,18 +3,21 @@ from django.conf.urls import url, include from . import views locpatterns = [ - url(r'^(?P[0-9]+)/?$', views.LocationDetail.as_view()), + url(r'^(?P[0-9]+)/?$', views.LocationDetail.as_view(), name='location-detail'), - url(r'^\?*[^/]*/?$', views.LocationList.as_view()) + url(r'^\?.*/?$', views.LocationList.as_view(), name='location-list'), + + url(r'^$', views.LocationList.as_view(), name='location-list') ] urlpatterns = [ # Stock location urls - url(r'^location/?', include(locpatterns)), + url(r'^location/', include(locpatterns)), # Detail for a single stock item - url(r'^(?P[0-9]+)$', views.StockDetail.as_view()), + url(r'^(?P[0-9]+)/?$', views.StockDetail.as_view(), name='stock-detail'), # List all stock items, with optional filters - url(r'^\?*[^/]*/?$', views.StockList.as_view()), + url(r'^\?.*/?$', views.StockList.as_view(), name='stock-list'), + url(r'^$', views.StockList.as_view(), name='stock-list'), ] diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py index 60f3a09c82..fa32ce234d 100644 --- a/InvenTree/stock/views.py +++ b/InvenTree/stock/views.py @@ -3,7 +3,7 @@ import django_filters from InvenTree.models import FilterChildren from .models import StockLocation, StockItem -from .serializers import StockItemSerializer, LocationDetailSerializer +from .serializers import StockItemSerializer, LocationSerializer class StockDetail(generics.RetrieveUpdateDestroyAPIView): @@ -51,7 +51,7 @@ class LocationDetail(generics.RetrieveUpdateDestroyAPIView): """ queryset = StockLocation.objects.all() - serializer_class = LocationDetailSerializer + serializer_class = LocationSerializer permission_classes = (permissions.IsAuthenticatedOrReadOnly,) @@ -69,5 +69,5 @@ class LocationList(generics.ListCreateAPIView): return locations - serializer_class = LocationDetailSerializer + serializer_class = LocationSerializer permission_classes = (permissions.IsAuthenticatedOrReadOnly,) diff --git a/InvenTree/track/urls.py b/InvenTree/track/urls.py index 447c1c3d38..35410a653a 100644 --- a/InvenTree/track/urls.py +++ b/InvenTree/track/urls.py @@ -3,17 +3,19 @@ from django.conf.urls import url, include from . import views infopatterns = [ - url(r'^(?P[0-9]+)/?$', views.PartTrackingDetail.as_view()), + url(r'^(?P[0-9]+)/?$', views.PartTrackingDetail.as_view(), name='tracking-detail'), - url(r'^\?*[^/]*/?$', views.PartTrackingList.as_view()) + url(r'^\?.*/?$', views.PartTrackingList.as_view(), name='tracking-list'), + url(r'^$', views.PartTrackingList.as_view(), name='tracking-list') ] urlpatterns = [ - url(r'info/?', include(infopatterns)), + url(r'info/', include(infopatterns)), # Detail for a single unique part - url(r'^(?P[0-9]+)$', views.UniquePartDetail.as_view()), + url(r'^(?P[0-9]+)/?$', views.UniquePartDetail.as_view(), name='unique-detail'), # List all unique parts, with optional filters - url(r'^\?*[^/]*/?$', views.UniquePartList.as_view()), + url(r'^\?.*/?$', views.UniquePartList.as_view(), name='unique-list'), + url(r'^$', views.UniquePartList.as_view(), name='unique-list'), ]