mirror of
https://github.com/inventree/InvenTree.git
synced 2025-12-17 17:58:22 +00:00
[API] Tags filters (#11021)
* Add optional "tags" field * Refactor "tags" field - Off by default - Only prefetch when requested (expensive) - Ref: https://github.com/inventree/InvenTree/pull/11012 - Ref: https://github.com/inventree/InvenTree/issues/11002 - Closes https://github.com/inventree/InvenTree/issues/10996 * Bump API version * Tweak unit tests * Ensure all fields are available when writing data * Handle case where request has *no* method
This commit is contained in:
@@ -8,7 +8,6 @@ from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from rest_framework import serializers
|
||||
from sql_util.utils import SubqueryCount
|
||||
from taggit.serializers import TagListSerializerField
|
||||
|
||||
import common.filters
|
||||
import company.filters
|
||||
@@ -260,7 +259,7 @@ class ManufacturerPartSerializer(
|
||||
'parameters',
|
||||
]
|
||||
|
||||
tags = TagListSerializerField(required=False)
|
||||
tags = common.filters.enable_tags_filter()
|
||||
|
||||
parameters = common.filters.enable_parameters_filter()
|
||||
|
||||
@@ -383,7 +382,7 @@ class SupplierPartSerializer(
|
||||
'pack_quantity_native',
|
||||
]
|
||||
|
||||
tags = TagListSerializerField(required=False)
|
||||
tags = common.filters.enable_tags_filter()
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
"""Initialize this serializer with extra detail fields as required."""
|
||||
@@ -398,10 +397,9 @@ class SupplierPartSerializer(
|
||||
return
|
||||
|
||||
if brief:
|
||||
self.fields.pop('tags')
|
||||
self.fields.pop('available')
|
||||
self.fields.pop('on_order')
|
||||
self.fields.pop('availability_updated')
|
||||
self.fields.pop('available', None)
|
||||
self.fields.pop('on_order', None)
|
||||
self.fields.pop('availability_updated', None)
|
||||
|
||||
# Annotated field showing total in-stock quantity
|
||||
in_stock = serializers.FloatField(
|
||||
|
||||
Reference in New Issue
Block a user