diff options
Diffstat (limited to 'archaeological_warehouse/views.py')
-rw-r--r-- | archaeological_warehouse/views.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index 982d7dea2..c608f50a0 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -150,7 +150,7 @@ def autocomplete_container(request, warehouse_id=None): except ValueError: containers = [] # exact ref - query = query & Q(reference__unaccent__iexact=term) + query = query & (Q(reference__unaccent__iexact=term) | Q(code__unaccent__iexact=term)) containers += list( models.Container.objects.filter(query).values("id", "cached_label")[:limit] ) @@ -166,6 +166,7 @@ def autocomplete_container(request, warehouse_id=None): (c[0], unidecode(c[1]).lower()) for c in models.ContainerType.objects.values_list("id", "label") ] + # manage container type search term for container_type_id, value in container_types: value = unidecode(value).lower() if value in unidecode(term).lower(): # container_type is in search q @@ -235,7 +236,9 @@ def autocomplete_container(request, warehouse_id=None): group_2 = splitted[idx:] extra = Q( container_type__label__unaccent__iexact=" ".join(group_1), - reference__unaccent__iexact=" ".join(group_2), + ) & ( + Q(reference__unaccent__iexact=" ".join(group_2)) | + Q(code__unaccent__iexact=" ".join(group_2)) ) query = base_query & extra ids = {c["id"] for c in containers} @@ -250,8 +253,8 @@ def autocomplete_container(request, warehouse_id=None): if len(containers) < 15: query = base_query for q in splitted: - extra = Q(reference__unaccent__iexact=q) - query = query & extra + extra = Q(reference__unaccent__iexact=q) | Q(code__unaccent__iexact=q) + query &= extra ids = {c["id"] for c in containers} containers += list( models.Container.objects.filter(query) @@ -266,6 +269,7 @@ def autocomplete_container(request, warehouse_id=None): Q(container_type__label__unaccent__icontains=q) | Q(container_type__reference__unaccent__icontains=q) | Q(reference__unaccent__icontains=q) + | Q(code__unaccent__icontains=q) | Q(cached_label__unaccent__icontains=q) ) if not warehouse_id: |