mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Add API endpoint and serializer for BuildItem model
This commit is contained in:
parent
17d9d25fb9
commit
c29827e45a
@ -9,10 +9,10 @@ from django_filters.rest_framework import DjangoFilterBackend
|
||||
from rest_framework import filters
|
||||
from rest_framework import generics, permissions
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.conf.urls import url, include
|
||||
|
||||
from .models import Build
|
||||
from .serializers import BuildSerializer
|
||||
from .models import Build, BuildItem
|
||||
from .serializers import BuildSerializer, BuildItemSerializer
|
||||
|
||||
|
||||
class BuildList(generics.ListCreateAPIView):
|
||||
@ -36,10 +36,37 @@ class BuildList(generics.ListCreateAPIView):
|
||||
]
|
||||
|
||||
filter_fields = [
|
||||
'part',
|
||||
'build',
|
||||
]
|
||||
|
||||
|
||||
build_api_urls = [
|
||||
url(r'^.*$', BuildList.as_view(), name='api-build-list')
|
||||
class BuildItemList(generics.ListCreateAPIView):
|
||||
""" API endpoint for accessing a list of BuildItem objects
|
||||
|
||||
- GET: Return list of objects
|
||||
- POST: Create a new BuildItem object
|
||||
"""
|
||||
|
||||
queryset = BuildItem.objects.all()
|
||||
serializer_class = BuildItemSerializer
|
||||
|
||||
permission_classes = [
|
||||
permissions.IsAuthenticatedOrReadOnly,
|
||||
]
|
||||
|
||||
filter_fields = [
|
||||
'build',
|
||||
'part',
|
||||
'stock_item'
|
||||
]
|
||||
|
||||
|
||||
build_item_api_urls = [
|
||||
url('^.*$', BuildItemList.as_view(), name='api-build-item-list'),
|
||||
]
|
||||
|
||||
build_api_urls = [
|
||||
url(r'^item/?', include(build_item_api_urls)),
|
||||
|
||||
url(r'^.*$', BuildList.as_view(), name='api-build-list'),
|
||||
]
|
||||
|
@ -28,6 +28,9 @@ class Build(models.Model):
|
||||
notes: Text notes
|
||||
"""
|
||||
|
||||
def __str__(self):
|
||||
return "Build {q} x {part}".format(q=self.quantity, part=str(self.part))
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('build-detail', kwargs={'pk': self.id})
|
||||
|
||||
|
@ -34,10 +34,13 @@ class BuildSerializer(InvenTreeModelSerializer):
|
||||
class BuildItemSerializer(InvenTreeModelSerializer):
|
||||
""" Serializes a BuildItem object """
|
||||
|
||||
part = serializers.CharField(source='stock_item.part', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = BuildItem
|
||||
fields = [
|
||||
'build',
|
||||
'stock',
|
||||
'part',
|
||||
'stock_item',
|
||||
'quantity'
|
||||
]
|
||||
|
@ -73,6 +73,7 @@
|
||||
{% endif %}
|
||||
</table>
|
||||
|
||||
{% if build.is_active %}
|
||||
<h3>Required Parts</h3>
|
||||
<table class='table table-striped' id='build-list' data-sorting='true'>
|
||||
<thead>
|
||||
@ -93,6 +94,8 @@
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% include 'modals.html' %}
|
||||
|
||||
{% endblock %}
|
||||
|
@ -307,6 +307,12 @@ class Part(models.Model):
|
||||
def used_in_count(self):
|
||||
return self.used_in.count()
|
||||
|
||||
def required_parts(self):
|
||||
parts = []
|
||||
for bom in self.bom_items.all():
|
||||
parts.append(bom.sub_part)
|
||||
return parts
|
||||
|
||||
@property
|
||||
def supplier_count(self):
|
||||
# Return the number of supplier parts available for this part
|
||||
|
Loading…
Reference in New Issue
Block a user