mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 21:25:42 +00:00 
			
		
		
		
	Adds API endpoints for ManufacturerPartParameter mdoel
This commit is contained in:
		| @@ -15,11 +15,11 @@ from django.db.models import Q | ||||
| from InvenTree.helpers import str2bool | ||||
|  | ||||
| from .models import Company | ||||
| from .models import ManufacturerPart | ||||
| from .models import ManufacturerPart, ManufacturerPartParameter | ||||
| from .models import SupplierPart, SupplierPriceBreak | ||||
|  | ||||
| from .serializers import CompanySerializer | ||||
| from .serializers import ManufacturerPartSerializer | ||||
| from .serializers import ManufacturerPartSerializer, ManufacturerPartParameterSerializer | ||||
| from .serializers import SupplierPartSerializer, SupplierPriceBreakSerializer | ||||
|  | ||||
|  | ||||
| @@ -175,6 +175,86 @@ class ManufacturerPartDetail(generics.RetrieveUpdateDestroyAPIView): | ||||
|     serializer_class = ManufacturerPartSerializer | ||||
|  | ||||
|  | ||||
| class ManufacturerPartParameterList(generics.ListCreateAPIView): | ||||
|     """ | ||||
|     API endpoint for list view of ManufacturerPartParamater model. | ||||
|     """ | ||||
|  | ||||
|     queryset = ManufacturerPartParameter.objects.all() | ||||
|     serializer_class = ManufacturerPartParameterSerializer | ||||
|      | ||||
|     def get_serializer(self, *args, **kwargs): | ||||
|  | ||||
|         # Do we wish to include any extra detail? | ||||
|         try: | ||||
|             params = self.request.query_params | ||||
|  | ||||
|             optional_fields = [ | ||||
|                 'manufacturer_part_detail', | ||||
|             ] | ||||
|  | ||||
|             for key in optional_fields: | ||||
|                 kwargs[key] = str2bool(params.get(key, None)) | ||||
|  | ||||
|         except AttributeError: | ||||
|             pass | ||||
|  | ||||
|         kwargs['context'] = self.get_serializer_context() | ||||
|  | ||||
|         return self.serializer_class(*args, **kwargs) | ||||
|  | ||||
|     def filter_queryset(self, queryset): | ||||
|         """ | ||||
|         Custom filtering for the queryset | ||||
|         """ | ||||
|  | ||||
|         queryset = super().filter_queryset(queryset) | ||||
|  | ||||
|         params = self.request.query_params | ||||
|  | ||||
|         # Filter by manufacturer? | ||||
|         manufacturer = params.get('manufacturer', None) | ||||
|  | ||||
|         if manufacturer is not None: | ||||
|             queryset = queryset.filter(manufacturer_part__manufacturer=manufacturer) | ||||
|  | ||||
|         # Filter by part? | ||||
|         part = params.get('part', None) | ||||
|  | ||||
|         if part is not None: | ||||
|             queryset = queryset.filter(manufacturer_part__part=part) | ||||
|  | ||||
|         return queryset | ||||
|  | ||||
|     filter_backends = [ | ||||
|         DjangoFilterBackend, | ||||
|         filters.SearchFilter, | ||||
|         filters.OrderingFilter, | ||||
|     ] | ||||
|  | ||||
|     filter_fields = [ | ||||
|         'name', | ||||
|         'value', | ||||
|         'units', | ||||
|         'manufacturer_part', | ||||
|     ] | ||||
|  | ||||
|     search_fields = [ | ||||
|         'name', | ||||
|         'value', | ||||
|         'units', | ||||
|     ] | ||||
|  | ||||
|  | ||||
| class ManufacturerPartParameterDetail(generics.RetrieveUpdateDestroyAPIView): | ||||
|     """ | ||||
|     API endpoint for detail view of ManufacturerPartParameter model | ||||
|     """ | ||||
|  | ||||
|     queryset = ManufacturerPartParameter.objects.all() | ||||
|     serializer_class = ManufacturerPartParameterSerializer | ||||
|  | ||||
|  | ||||
| class SupplierPartList(generics.ListCreateAPIView): | ||||
|     """ API endpoint for list view of SupplierPart object | ||||
|  | ||||
| @@ -316,6 +396,13 @@ class SupplierPriceBreakList(generics.ListCreateAPIView): | ||||
|  | ||||
| manufacturer_part_api_urls = [ | ||||
|  | ||||
|     url(r'^parameter/', include([ | ||||
|         url(r'^(?P<pk>\d+)/', ManufacturerPartParameterDetail.as_view(), name='api-manufacturer-part-parameter-detail'), | ||||
|  | ||||
|         # Catch anything else | ||||
|         url(r'^.*$', ManufacturerPartParameterList.as_view(), name='api-manufacturer-part-parameter-list'), | ||||
|     ])), | ||||
|  | ||||
|     url(r'^(?P<pk>\d+)/?', ManufacturerPartDetail.as_view(), name='api-manufacturer-part-detail'), | ||||
|  | ||||
|     # Catch anything else | ||||
|   | ||||
| @@ -7,7 +7,7 @@ from rest_framework import serializers | ||||
| from sql_util.utils import SubqueryCount | ||||
|  | ||||
| from .models import Company | ||||
| from .models import ManufacturerPart | ||||
| from .models import ManufacturerPart, ManufacturerPartParameter | ||||
| from .models import SupplierPart, SupplierPriceBreak | ||||
|  | ||||
| from InvenTree.serializers import InvenTreeModelSerializer | ||||
| @@ -124,6 +124,35 @@ class ManufacturerPartSerializer(InvenTreeModelSerializer): | ||||
|         ] | ||||
|  | ||||
|  | ||||
| class ManufacturerPartParameterSerializer(InvenTreeModelSerializer): | ||||
|     """ | ||||
|     Serializer for the ManufacturerPartParameter model | ||||
|     """ | ||||
|  | ||||
|     manufacturer_part_detail = ManufacturerPartSerializer(source='manufacturer_part', many=False, read_only=True) | ||||
|  | ||||
|     def __init__(self, *args, **kwargs): | ||||
|  | ||||
|         man_detail = kwargs.pop('manufacturer_part_detail', False) | ||||
|  | ||||
|         super(ManufacturerPartParameterSerializer, self).__init__(*args, **kwargs) | ||||
|  | ||||
|         if not man_detail: | ||||
|             self.fields.pop('manufacturer_part_detail') | ||||
|  | ||||
|     class Meta: | ||||
|         model = ManufacturerPartParameter | ||||
|  | ||||
|         fields = [ | ||||
|             'pk', | ||||
|             'manufacturer_part', | ||||
|             'manufacturer_part_detail', | ||||
|             'name', | ||||
|             'value', | ||||
|             'units', | ||||
|         ] | ||||
|  | ||||
|  | ||||
| class SupplierPartSerializer(InvenTreeModelSerializer): | ||||
|     """ Serializer for SupplierPart object """ | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user