mirror of
https://github.com/inventree/InvenTree.git
synced 2025-12-16 17:28:11 +00:00
Refactor mixin to avoid specifying model type manually
This commit is contained in:
@@ -603,8 +603,6 @@ class BulkUpdateMixin(BulkOperationMixin):
|
|||||||
class ParameterListMixin:
|
class ParameterListMixin:
|
||||||
"""Mixin class which supports filtering against parametric fields."""
|
"""Mixin class which supports filtering against parametric fields."""
|
||||||
|
|
||||||
parameter_model_class = None
|
|
||||||
|
|
||||||
def filter_queryset(self, queryset):
|
def filter_queryset(self, queryset):
|
||||||
"""Perform filtering against parametric fields."""
|
"""Perform filtering against parametric fields."""
|
||||||
import common.filters
|
import common.filters
|
||||||
@@ -616,11 +614,15 @@ class ParameterListMixin:
|
|||||||
queryset, self.request.query_params
|
queryset, self.request.query_params
|
||||||
)
|
)
|
||||||
|
|
||||||
|
serializer_class = (
|
||||||
|
getattr(self, 'serializer_class', None) or self.get_serializer_class()
|
||||||
|
)
|
||||||
|
|
||||||
|
model_class = serializer_class.Meta.model
|
||||||
|
|
||||||
# Apply ordering based on query parameter
|
# Apply ordering based on query parameter
|
||||||
queryset = common.filters.order_by_parameter(
|
queryset = common.filters.order_by_parameter(
|
||||||
queryset,
|
queryset, model_class, self.request.query_params.get('ordering', None)
|
||||||
self.parameter_model_class,
|
|
||||||
self.request.query_params.get('ordering', None),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return queryset
|
return queryset
|
||||||
|
|||||||
@@ -349,7 +349,6 @@ class BuildList(
|
|||||||
- POST: Create a new Build object
|
- POST: Create a new Build object
|
||||||
"""
|
"""
|
||||||
|
|
||||||
parameter_model_class = Build
|
|
||||||
output_options = BuildListOutputOptions
|
output_options = BuildListOutputOptions
|
||||||
filterset_class = BuildFilter
|
filterset_class = BuildFilter
|
||||||
filter_backends = SEARCH_ORDER_FILTER_ALIAS
|
filter_backends = SEARCH_ORDER_FILTER_ALIAS
|
||||||
|
|||||||
@@ -2442,7 +2442,7 @@ class ParameterTemplate(
|
|||||||
choice_set.add(choice)
|
choice_set.add(choice)
|
||||||
|
|
||||||
def validate_unique(self, exclude=None):
|
def validate_unique(self, exclude=None):
|
||||||
"""Ensure that PartParameterTemplates cannot be created with the same name.
|
"""Ensure that ParameterTemplates cannot be created with the same name.
|
||||||
|
|
||||||
This test should be case-insensitive (which the unique caveat does not cover).
|
This test should be case-insensitive (which the unique caveat does not cover).
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -60,7 +60,6 @@ class CompanyList(CompanyMixin, ParameterListMixin, DataExportViewMixin, ListCre
|
|||||||
- POST: Create a new Company object
|
- POST: Create a new Company object
|
||||||
"""
|
"""
|
||||||
|
|
||||||
parameter_model_class = Company
|
|
||||||
filter_backends = SEARCH_ORDER_FILTER
|
filter_backends = SEARCH_ORDER_FILTER
|
||||||
|
|
||||||
filterset_fields = [
|
filterset_fields = [
|
||||||
@@ -201,7 +200,6 @@ class ManufacturerPartList(
|
|||||||
- POST: Create a new ManufacturerPart object
|
- POST: Create a new ManufacturerPart object
|
||||||
"""
|
"""
|
||||||
|
|
||||||
parameter_model_class = ManufacturerPart
|
|
||||||
filterset_class = ManufacturerPartFilter
|
filterset_class = ManufacturerPartFilter
|
||||||
filter_backends = SEARCH_ORDER_FILTER
|
filter_backends = SEARCH_ORDER_FILTER
|
||||||
output_options = ManufacturerOutputOptions
|
output_options = ManufacturerOutputOptions
|
||||||
@@ -352,7 +350,6 @@ class SupplierPartList(
|
|||||||
- POST: Create a new SupplierPart object
|
- POST: Create a new SupplierPart object
|
||||||
"""
|
"""
|
||||||
|
|
||||||
parameter_model_class = SupplierPart
|
|
||||||
filterset_class = SupplierPartFilter
|
filterset_class = SupplierPartFilter
|
||||||
filter_backends = SEARCH_ORDER_FILTER_ALIAS
|
filter_backends = SEARCH_ORDER_FILTER_ALIAS
|
||||||
output_options = SupplierPartOutputOptions
|
output_options = SupplierPartOutputOptions
|
||||||
|
|||||||
@@ -392,7 +392,6 @@ class PurchaseOrderList(
|
|||||||
- POST: Create a new PurchaseOrder object
|
- POST: Create a new PurchaseOrder object
|
||||||
"""
|
"""
|
||||||
|
|
||||||
parameter_model_class = models.PurchaseOrder
|
|
||||||
filterset_class = PurchaseOrderFilter
|
filterset_class = PurchaseOrderFilter
|
||||||
filter_backends = SEARCH_ORDER_FILTER_ALIAS
|
filter_backends = SEARCH_ORDER_FILTER_ALIAS
|
||||||
output_options = PurchaseOrderOutputOptions
|
output_options = PurchaseOrderOutputOptions
|
||||||
@@ -863,7 +862,6 @@ class SalesOrderList(
|
|||||||
- POST: Create a new SalesOrder
|
- POST: Create a new SalesOrder
|
||||||
"""
|
"""
|
||||||
|
|
||||||
parameter_model_class = models.SalesOrder
|
|
||||||
filterset_class = SalesOrderFilter
|
filterset_class = SalesOrderFilter
|
||||||
filter_backends = SEARCH_ORDER_FILTER_ALIAS
|
filter_backends = SEARCH_ORDER_FILTER_ALIAS
|
||||||
output_options = SalesOrderOutputOptions
|
output_options = SalesOrderOutputOptions
|
||||||
@@ -1537,7 +1535,6 @@ class ReturnOrderList(
|
|||||||
):
|
):
|
||||||
"""API endpoint for accessing a list of ReturnOrder objects."""
|
"""API endpoint for accessing a list of ReturnOrder objects."""
|
||||||
|
|
||||||
parameter_model_class = models.ReturnOrder
|
|
||||||
filterset_class = ReturnOrderFilter
|
filterset_class = ReturnOrderFilter
|
||||||
filter_backends = SEARCH_ORDER_FILTER_ALIAS
|
filter_backends = SEARCH_ORDER_FILTER_ALIAS
|
||||||
|
|
||||||
|
|||||||
@@ -1076,7 +1076,6 @@ class PartList(
|
|||||||
):
|
):
|
||||||
"""API endpoint for accessing a list of Part objects, or creating a new Part instance."""
|
"""API endpoint for accessing a list of Part objects, or creating a new Part instance."""
|
||||||
|
|
||||||
parameter_model_class = Part
|
|
||||||
output_options = PartOutputOptions
|
output_options = PartOutputOptions
|
||||||
filterset_class = PartFilter
|
filterset_class = PartFilter
|
||||||
is_create = True
|
is_create = True
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ RULESET_NAMES = [choice[0] for choice in RULESET_CHOICES]
|
|||||||
# Permission types available for each ruleset.
|
# Permission types available for each ruleset.
|
||||||
RULESET_PERMISSIONS = ['view', 'add', 'change', 'delete']
|
RULESET_PERMISSIONS = ['view', 'add', 'change', 'delete']
|
||||||
|
|
||||||
RULESET_CHANGE_INHERIT = [('part', 'partparameter'), ('part', 'bomitem')]
|
RULESET_CHANGE_INHERIT = [('part', 'bomitem')]
|
||||||
|
|
||||||
|
|
||||||
def get_ruleset_models() -> dict:
|
def get_ruleset_models() -> dict:
|
||||||
|
|||||||
Reference in New Issue
Block a user