mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
remove unused function
This commit is contained in:
parent
aa4ed9feb0
commit
dd78464a74
@ -235,57 +235,6 @@ def rename_part_image(instance, filename):
|
|||||||
return os.path.join(base, fname)
|
return os.path.join(base, fname)
|
||||||
|
|
||||||
|
|
||||||
def match_part_names(match, threshold=80, reverse=True, compare_length=False):
|
|
||||||
""" Return a list of parts whose name matches the search term using fuzzy search.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
match: Term to match against
|
|
||||||
threshold: Match percentage that must be exceeded (default = 65)
|
|
||||||
reverse: Ordering for search results (default = True - highest match is first)
|
|
||||||
compare_length: Include string length checks
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
A sorted dict where each element contains the following key:value pairs:
|
|
||||||
- 'part' : The matched part
|
|
||||||
- 'ratio' : The matched ratio
|
|
||||||
"""
|
|
||||||
|
|
||||||
match = str(match).strip().lower()
|
|
||||||
|
|
||||||
if len(match) == 0:
|
|
||||||
return []
|
|
||||||
|
|
||||||
parts = Part.objects.all()
|
|
||||||
|
|
||||||
matches = []
|
|
||||||
|
|
||||||
for part in parts:
|
|
||||||
compare = str(part.name).strip().lower()
|
|
||||||
|
|
||||||
if len(compare) == 0:
|
|
||||||
continue
|
|
||||||
|
|
||||||
ratio = fuzz.partial_token_sort_ratio(compare, match)
|
|
||||||
|
|
||||||
if compare_length:
|
|
||||||
# Also employ primitive length comparison
|
|
||||||
# TODO - Improve this somewhat...
|
|
||||||
l_min = min(len(match), len(compare))
|
|
||||||
l_max = max(len(match), len(compare))
|
|
||||||
|
|
||||||
ratio *= (l_min / l_max)
|
|
||||||
|
|
||||||
if ratio >= threshold:
|
|
||||||
matches.append({
|
|
||||||
'part': part,
|
|
||||||
'ratio': round(ratio, 1)
|
|
||||||
})
|
|
||||||
|
|
||||||
matches = sorted(matches, key=lambda item: item['ratio'], reverse=reverse)
|
|
||||||
|
|
||||||
return matches
|
|
||||||
|
|
||||||
|
|
||||||
class PartManager(TreeManager):
|
class PartManager(TreeManager):
|
||||||
"""
|
"""
|
||||||
Defines a custom object manager for the Part model.
|
Defines a custom object manager for the Part model.
|
||||||
|
@ -12,7 +12,7 @@ from django.core.exceptions import ValidationError
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from .models import Part, PartCategory, PartTestTemplate
|
from .models import Part, PartCategory, PartTestTemplate
|
||||||
from .models import rename_part_image, match_part_names
|
from .models import rename_part_image
|
||||||
from .templatetags import inventree_extras
|
from .templatetags import inventree_extras
|
||||||
|
|
||||||
import part.settings
|
import part.settings
|
||||||
@ -163,12 +163,6 @@ class PartTest(TestCase):
|
|||||||
def test_copy(self):
|
def test_copy(self):
|
||||||
self.r2.deep_copy(self.r1, image=True, bom=True)
|
self.r2.deep_copy(self.r1, image=True, bom=True)
|
||||||
|
|
||||||
def test_match_names(self):
|
|
||||||
|
|
||||||
matches = match_part_names('M2x5 LPHS')
|
|
||||||
|
|
||||||
self.assertTrue(len(matches) > 0)
|
|
||||||
|
|
||||||
def test_sell_pricing(self):
|
def test_sell_pricing(self):
|
||||||
# check that the sell pricebreaks were loaded
|
# check that the sell pricebreaks were loaded
|
||||||
self.assertTrue(self.r1.has_price_breaks)
|
self.assertTrue(self.r1.has_price_breaks)
|
||||||
|
@ -14,8 +14,7 @@ from django.shortcuts import HttpResponseRedirect
|
|||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.views.generic import DetailView, ListView
|
from django.views.generic import DetailView, ListView
|
||||||
from django.forms.models import model_to_dict
|
from django.forms import HiddenInput
|
||||||
from django.forms import HiddenInput, CheckboxInput
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
|
|
||||||
@ -35,7 +34,6 @@ from .models import PartCategory, Part, PartRelated
|
|||||||
from .models import PartParameterTemplate
|
from .models import PartParameterTemplate
|
||||||
from .models import PartCategoryParameterTemplate
|
from .models import PartCategoryParameterTemplate
|
||||||
from .models import BomItem
|
from .models import BomItem
|
||||||
from .models import match_part_names
|
|
||||||
from .models import PartSellPriceBreak, PartInternalPriceBreak
|
from .models import PartSellPriceBreak, PartInternalPriceBreak
|
||||||
|
|
||||||
from common.models import InvenTreeSetting
|
from common.models import InvenTreeSetting
|
||||||
|
Loading…
Reference in New Issue
Block a user