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: | 
