2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-01 11:10:54 +00:00

Enable regex search (#4566)

* Adds custom search filter to allow 'regex' searching of results

* Specify if "shell" can access database for certain commands

* Bug fix for settings API

- Do not allow cache on detail endpoints
- Was causing strange error conditions with missing or duplicate PK values

* Adds user setting to control regex search

* Enable regex for search queries

- bootstrap tables
- search preview

* Pass search options through bettererer

* Refactor API endpoints to use new filter approach

* Bump API version

* Add "whole word" search

- Closes https://github.com/inventree/InvenTree/issues/4510

* Handle case where existing fields are empty

* pop > get
This commit is contained in:
Oliver
2023-04-04 07:05:55 +10:00
committed by GitHub
parent eef303dfea
commit d6715d94c1
19 changed files with 165 additions and 72 deletions

View File

@ -21,7 +21,7 @@ from common.settings import settings
from company.models import SupplierPart
from InvenTree.api import (APIDownloadMixin, AttachmentMixin,
ListCreateDestroyAPIView, MetadataView, StatusView)
from InvenTree.filters import InvenTreeOrderingFilter
from InvenTree.filters import InvenTreeOrderingFilter, InvenTreeSearchFilter
from InvenTree.helpers import DownloadFile, str2bool
from InvenTree.mixins import (CreateAPI, ListAPI, ListCreateAPI,
RetrieveUpdateDestroyAPI)
@ -63,7 +63,7 @@ class GeneralExtraLineList(APIDownloadMixin):
filter_backends = [
rest_filters.DjangoFilterBackend,
filters.SearchFilter,
InvenTreeSearchFilter,
filters.OrderingFilter
]
@ -309,7 +309,7 @@ class PurchaseOrderList(PurchaseOrderMixin, APIDownloadMixin, ListCreateAPI):
filter_backends = [
rest_filters.DjangoFilterBackend,
filters.SearchFilter,
InvenTreeSearchFilter,
InvenTreeOrderingFilter,
]
@ -510,7 +510,7 @@ class PurchaseOrderLineItemList(PurchaseOrderLineItemMixin, APIDownloadMixin, Li
filter_backends = [
rest_filters.DjangoFilterBackend,
filters.SearchFilter,
InvenTreeSearchFilter,
InvenTreeOrderingFilter
]
@ -695,7 +695,7 @@ class SalesOrderList(SalesOrderMixin, APIDownloadMixin, ListCreateAPI):
filter_backends = [
rest_filters.DjangoFilterBackend,
filters.SearchFilter,
InvenTreeSearchFilter,
InvenTreeOrderingFilter,
]
@ -819,7 +819,7 @@ class SalesOrderLineItemList(SalesOrderLineItemMixin, APIDownloadMixin, ListCrea
filter_backends = [
rest_filters.DjangoFilterBackend,
filters.SearchFilter,
InvenTreeSearchFilter,
filters.OrderingFilter
]
@ -1156,7 +1156,7 @@ class ReturnOrderList(ReturnOrderMixin, APIDownloadMixin, ListCreateAPI):
filter_backends = [
rest_filters.DjangoFilterBackend,
filters.SearchFilter,
InvenTreeSearchFilter,
InvenTreeOrderingFilter,
]
@ -1304,7 +1304,7 @@ class ReturnOrderLineItemList(ReturnOrderLineItemMixin, APIDownloadMixin, ListCr
filter_backends = [
rest_filters.DjangoFilterBackend,
filters.SearchFilter,
InvenTreeSearchFilter,
filters.OrderingFilter,
]