Improve search of packages, distributors and manufacturers
This commit is contained in:
		@@ -161,9 +161,18 @@ class PackageView(LoginRequiredMixin, BaseTemplateMixin, TemplateView):
 | 
			
		||||
        if not search:
 | 
			
		||||
            return qs
 | 
			
		||||
        
 | 
			
		||||
        search = search.strip()
 | 
			
		||||
        search_fragments = search.strip().split()
 | 
			
		||||
        for search in search_fragments:
 | 
			
		||||
            if search.lower() == 'smd':
 | 
			
		||||
                s_filter = Q(name__icontains = search) | Q(smd = True)
 | 
			
		||||
            else:
 | 
			
		||||
                try:
 | 
			
		||||
                    pin_count = int(search)
 | 
			
		||||
                    s_filter = Q(name__icontains = search) | Q(pin_count=pin_count)
 | 
			
		||||
                except:
 | 
			
		||||
                    s_filter = Q(name__icontains = search)
 | 
			
		||||
 | 
			
		||||
        qs = qs.filter(Q(name__icontains = search))
 | 
			
		||||
            qs = qs.filter(s_filter)
 | 
			
		||||
        return qs
 | 
			
		||||
 | 
			
		||||
    def get_context_data(self, **kwargs):
 | 
			
		||||
@@ -214,8 +223,9 @@ class DistributorView(LoginRequiredMixin, BaseTemplateMixin, TemplateView):
 | 
			
		||||
        if not search:
 | 
			
		||||
            return qs
 | 
			
		||||
        
 | 
			
		||||
        search = search.strip()
 | 
			
		||||
        search_fragments = search.strip().split()
 | 
			
		||||
 | 
			
		||||
        for search in search_fragments:
 | 
			
		||||
            qs = qs.filter(Q(name__icontains = search) | Q(website__icontains = search))
 | 
			
		||||
        return qs
 | 
			
		||||
 | 
			
		||||
@@ -741,9 +751,11 @@ class ManufacturersViewSet(LoginRequiredMixin, BaseTemplateMixin, TemplateView):
 | 
			
		||||
        if not search:
 | 
			
		||||
            return qs
 | 
			
		||||
        
 | 
			
		||||
        search = search.strip()
 | 
			
		||||
        search_fragements = search.strip().split()
 | 
			
		||||
 | 
			
		||||
        for search in search_fragements:
 | 
			
		||||
            qs = qs.filter(Q(name__icontains = search) | Q(website__icontains = search))
 | 
			
		||||
 | 
			
		||||
        return qs
 | 
			
		||||
 | 
			
		||||
    def get_context_data(self, **kwargs):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user