Skip to content

Commit

Permalink
Remove dead code (#7265)
Browse files Browse the repository at this point in the history
* Remove dead code

- Previously custom LIST was required
- Improvements render this unnecessary now

* Remove unused imports
  • Loading branch information
SchrodingersGat committed May 20, 2024
1 parent 442bb73 commit 2ebe785
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 91 deletions.
60 changes: 1 addition & 59 deletions src/backend/InvenTree/part/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import re

from django.db.models import Count, F, Q
from django.http import JsonResponse
from django.urls import include, path, re_path
from django.utils.translation import gettext_lazy as _

Expand Down Expand Up @@ -32,13 +31,7 @@
InvenTreeDateFilter,
InvenTreeSearchFilter,
)
from InvenTree.helpers import (
DownloadFile,
increment_serial_number,
is_ajax,
isNull,
str2bool,
)
from InvenTree.helpers import DownloadFile, increment_serial_number, isNull, str2bool
from InvenTree.mixins import (
CreateAPI,
CustomRetrieveUpdateDestroyAPI,
Expand Down Expand Up @@ -1216,33 +1209,6 @@ def download_queryset(self, queryset, export_format):

return DownloadFile(filedata, filename)

def list(self, request, *args, **kwargs):
"""Override the 'list' method, as the PartCategory objects are very expensive to serialize!
So we will serialize them first, and keep them in memory, so that they do not have to be serialized multiple times...
"""
queryset = self.filter_queryset(self.get_queryset())

page = self.paginate_queryset(queryset)

if page is not None:
serializer = self.get_serializer(page, many=True)
else:
serializer = self.get_serializer(queryset, many=True)

data = serializer.data

"""
Determine the response type based on the request.
a) For HTTP requests (e.g. via the browsable API) return a DRF response
b) For AJAX requests, simply return a JSON rendered response.
"""
if page is not None:
return self.get_paginated_response(data)
elif is_ajax(request):
return JsonResponse(data, safe=False)
return Response(data)

def filter_queryset(self, queryset):
"""Perform custom filtering of the queryset."""
params = self.request.query_params
Expand Down Expand Up @@ -1890,30 +1856,6 @@ class BomList(BomMixin, ListCreateDestroyAPIView):

filterset_class = BomFilter

def list(self, request, *args, **kwargs):
"""Return serialized list response for this endpoint."""
queryset = self.filter_queryset(self.get_queryset())

page = self.paginate_queryset(queryset)

if page is not None:
serializer = self.get_serializer(page, many=True)
else:
serializer = self.get_serializer(queryset, many=True)

data = serializer.data

"""
Determine the response type based on the request.
a) For HTTP requests (e.g. via the browsable API) return a DRF response
b) For AJAX requests, simply return a JSON rendered response.
"""
if page is not None:
return self.get_paginated_response(data)
elif is_ajax(request):
return JsonResponse(data, safe=False)
return Response(data)

filter_backends = SEARCH_ORDER_FILTER_ALIAS

search_fields = [
Expand Down
33 changes: 1 addition & 32 deletions src/backend/InvenTree/stock/api.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""JSON API for the Stock app."""

from collections import OrderedDict
from datetime import datetime, timedelta
from datetime import timedelta

from django.core.exceptions import ValidationError as DjangoValidationError
from django.db import transaction
Expand Down Expand Up @@ -45,7 +45,6 @@
is_ajax,
isNull,
str2bool,
str2int,
)
from InvenTree.mixins import (
CreateAPI,
Expand Down Expand Up @@ -1055,36 +1054,6 @@ def download_queryset(self, queryset, export_format):

return DownloadFile(filedata, filename)

def list(self, request, *args, **kwargs):
"""Override the 'list' method, as the StockLocation objects are very expensive to serialize.
So, we fetch and serialize the required StockLocation objects only as required.
"""
queryset = self.filter_queryset(self.get_queryset())

page = self.paginate_queryset(queryset)

if page is not None:
serializer = self.get_serializer(page, many=True)
else:
serializer = self.get_serializer(queryset, many=True)

data = serializer.data

"""
Determine the response type based on the request.
a) For HTTP requests (e.g. via the browsable API) return a DRF response
b) For AJAX requests, simply return a JSON rendered response.
Note: b) is about 100x quicker than a), because the DRF framework adds a lot of cruft
"""

if page is not None:
return self.get_paginated_response(data)
elif is_ajax(request):
return JsonResponse(data, safe=False)
return Response(data)

def get_queryset(self, *args, **kwargs):
"""Annotate queryset before returning."""
queryset = super().get_queryset(*args, **kwargs)
Expand Down

0 comments on commit 2ebe785

Please sign in to comment.