2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-29 20:16:44 +00:00

Project API is hyperlinked

This commit is contained in:
Oliver Walters 2017-04-15 00:00:55 +10:00
parent a1db0c90e4
commit 9e287d85d8
2 changed files with 20 additions and 18 deletions

View File

@ -3,38 +3,40 @@ from rest_framework import serializers
from .models import ProjectCategory, Project, ProjectPart from .models import ProjectCategory, Project, ProjectPart
class ProjectPartSerializer(serializers.ModelSerializer): class ProjectPartSerializer(serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = ProjectPart model = ProjectPart
fields = ('pk', fields = ('url',
'part', 'part',
'project', 'project',
'quantity', 'quantity',
'output') 'output')
class ProjectSerializer(serializers.ModelSerializer): class ProjectSerializer(serializers.HyperlinkedModelSerializer):
""" Serializer for displaying brief overview of a project
"""
class Meta: class Meta:
model = Project model = Project
fields = ('pk', fields = ('url',
'name', 'name',
'description', 'description',
'category') 'category')
class ProjectCategorySerializer(serializers.ModelSerializer): class ProjectCategorySerializer(serializers.HyperlinkedModelSerializer):
children = serializers.PrimaryKeyRelatedField(many=True, read_only=True) children = serializers.HyperlinkedRelatedField(many=True,
read_only=True,
view_name='projectcategory-detail')
projects = serializers.PrimaryKeyRelatedField(many=True, read_only=True) projects = serializers.HyperlinkedRelatedField(many=True,
read_only=True,
view_name='project-detail')
class Meta: class Meta:
model = ProjectCategory model = ProjectCategory
fields = ('pk', fields = ('url',
'name', 'name',
'description', 'description',
'parent', 'parent',

View File

@ -4,20 +4,20 @@ from . import views
projectpartpatterns = [ projectpartpatterns = [
# Detail of a single project part # Detail of a single project part
url(r'^(?P<pk>[0-9]+)/?$', views.ProjectPartDetail.as_view(), name='project-part-detail'), url(r'^(?P<pk>[0-9]+)/?$', views.ProjectPartDetail.as_view(), name='projectpart-detail'),
# List project parts, with optional filters # List project parts, with optional filters
url(r'^\?.*/?$', views.ProjectPartsList.as_view(), name='project-part-list'), url(r'^\?.*/?$', views.ProjectPartsList.as_view()),
url(r'^$', views.ProjectPartsList.as_view(), name='project-part-list'), url(r'^$', views.ProjectPartsList.as_view()),
] ]
projectcategorypatterns = [ projectcategorypatterns = [
# Detail of a single project category # Detail of a single project category
url(r'^(?P<pk>[0-9]+)/?$', views.ProjectCategoryDetail.as_view(), name='project-category-detail'), url(r'^(?P<pk>[0-9]+)/?$', views.ProjectCategoryDetail.as_view(), name='projectcategory-detail'),
# List of project categories, with filters # List of project categories, with filters
url(r'^\?.*/?$', views.ProjectCategoryList.as_view(), name='project-category-list'), url(r'^\?.*/?$', views.ProjectCategoryList.as_view()),
url(r'^$', views.ProjectCategoryList.as_view(), name='project-category-list'), url(r'^$', views.ProjectCategoryList.as_view()),
] ]
urlpatterns = [ urlpatterns = [
@ -25,8 +25,8 @@ urlpatterns = [
url(r'^(?P<pk>[0-9]+)/?$', views.ProjectDetail.as_view(), name='project-detail'), url(r'^(?P<pk>[0-9]+)/?$', views.ProjectDetail.as_view(), name='project-detail'),
# List of all projects # List of all projects
url(r'^\?.*/?$', views.ProjectList.as_view(), name='project-list'), url(r'^\?.*/?$', views.ProjectList.as_view()),
url(r'^$', views.ProjectList.as_view(), name='project-list'), url(r'^$', views.ProjectList.as_view()),
# Project parts # Project parts
url(r'^parts/', include(projectpartpatterns)), url(r'^parts/', include(projectpartpatterns)),