2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-05-01 04:56:45 +00:00

Simplified PART and PROJECT APIs

This commit is contained in:
Oliver Walters 2017-04-14 15:25:10 +10:00
parent fe52610fcc
commit 37808f3834
5 changed files with 19 additions and 29 deletions

View File

@ -32,16 +32,11 @@ class PartSerializer(serializers.ModelSerializer):
'stock') 'stock')
class PartCategoryBriefSerializer(serializers.ModelSerializer): class PartCategorySerializer(serializers.ModelSerializer):
class Meta: children = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
model = PartCategory
fields = ('pk',
'name',
'description')
parts = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class PartCategoryDetailSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = PartCategory model = PartCategory
@ -49,7 +44,9 @@ class PartCategoryDetailSerializer(serializers.ModelSerializer):
'name', 'name',
'description', 'description',
'parent', 'parent',
'path') 'path',
'children',
'parts')
class PartTemplateSerializer(serializers.ModelSerializer): class PartTemplateSerializer(serializers.ModelSerializer):

View File

@ -5,7 +5,7 @@ from rest_framework import generics, permissions
from InvenTree.models import FilterChildren from InvenTree.models import FilterChildren
from .models import PartCategory, Part, PartParameter, PartParameterTemplate from .models import PartCategory, Part, PartParameter, PartParameterTemplate
from .serializers import PartSerializer from .serializers import PartSerializer
from .serializers import PartCategoryDetailSerializer from .serializers import PartCategorySerializer
from .serializers import PartParameterSerializer from .serializers import PartParameterSerializer
from .serializers import PartTemplateSerializer from .serializers import PartTemplateSerializer
@ -83,7 +83,7 @@ class PartCategoryDetail(generics.RetrieveUpdateDestroyAPIView):
""" Return information on a single PartCategory """ Return information on a single PartCategory
""" """
queryset = PartCategory.objects.all() queryset = PartCategory.objects.all()
serializer_class = PartCategoryDetailSerializer serializer_class = PartCategorySerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
@ -102,7 +102,7 @@ class PartCategoryList(generics.ListCreateAPIView):
return categories return categories
queryset = PartCategory.objects.filter(parent=None) queryset = PartCategory.objects.filter(parent=None)
serializer_class = PartCategoryDetailSerializer serializer_class = PartCategorySerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)

View File

@ -29,17 +29,11 @@ class Project(models.Model):
name = models.CharField(max_length=100) name = models.CharField(max_length=100)
description = models.CharField(max_length=500, blank=True) description = models.CharField(max_length=500, blank=True)
category = models.ForeignKey(ProjectCategory, on_delete=models.CASCADE) category = models.ForeignKey(ProjectCategory, on_delete=models.CASCADE, related_name='projects')
def __str__(self): def __str__(self):
return self.name return self.name
@property
def projectParts(self):
""" Return a list of all project parts associated with this project
"""
return self.projectpart_set.all()
class ProjectPartManager(models.Manager): class ProjectPartManager(models.Manager):
""" Manager for handling ProjectParts """ Manager for handling ProjectParts

View File

@ -26,14 +26,11 @@ class ProjectSerializer(serializers.ModelSerializer):
'category') 'category')
class ProjectCategoryBriefSerializer(serializers.ModelSerializer): class ProjectCategorySerializer(serializers.ModelSerializer):
class Meta: children = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
model = ProjectCategory
fields = ('pk', 'name', 'description')
projects = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class ProjectCategoryDetailSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = ProjectCategory model = ProjectCategory
@ -41,4 +38,6 @@ class ProjectCategoryDetailSerializer(serializers.ModelSerializer):
'name', 'name',
'description', 'description',
'parent', 'parent',
'path') 'path',
'children',
'projects')

View File

@ -3,7 +3,7 @@ from rest_framework import generics, permissions
from InvenTree.models import FilterChildren from InvenTree.models import FilterChildren
from .models import ProjectCategory, Project, ProjectPart from .models import ProjectCategory, Project, ProjectPart
from .serializers import ProjectSerializer from .serializers import ProjectSerializer
from .serializers import ProjectCategoryDetailSerializer from .serializers import ProjectCategorySerializer
from .serializers import ProjectPartSerializer from .serializers import ProjectPartSerializer
@ -40,7 +40,7 @@ class ProjectCategoryDetail(generics.RetrieveUpdateAPIView):
""" """
queryset = ProjectCategory.objects.all() queryset = ProjectCategory.objects.all()
serializer_class = ProjectCategoryDetailSerializer serializer_class = ProjectCategorySerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
@ -57,7 +57,7 @@ class ProjectCategoryList(generics.ListCreateAPIView):
return categories return categories
serializer_class = ProjectCategoryDetailSerializer serializer_class = ProjectCategorySerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)