diff options
Diffstat (limited to 'archaeological_warehouse/views.py')
| -rw-r--r-- | archaeological_warehouse/views.py | 16 | 
1 files changed, 9 insertions, 7 deletions
| diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index cb74b49f9..801c2255c 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -76,7 +76,7 @@ def autocomplete_warehouse(request):      return HttpResponse(data, content_type='text/plain') -def autocomplete_container(request): +def autocomplete_container(request, warehouse_id=None):      if not request.user.has_perm('ishtar_common.view_warehouse',                                   models.Warehouse)\         and not request.user.has_perm( @@ -86,7 +86,10 @@ def autocomplete_container(request):          return HttpResponse(content_type='text/plain')      term = request.GET.get('term')      limit = 15 -    query = Q() +    base_query = Q() +    if warehouse_id: +        base_query = Q(location_id=warehouse_id) +    query = base_query      for q in term.split(' '):          extra = Q(reference__iexact=q)          query = query & extra @@ -94,20 +97,21 @@ def autocomplete_container(request):          query).values('id', 'cached_label')[:limit])      limit = 15 - len(containers)      if limit > 0: -        query = Q() +        query = base_query          for q in term.split(' '):              extra = Q(container_type__label__icontains=q) | \                  Q(container_type__reference__icontains=q) | \                  Q(reference__icontains=q) | \ +                Q(cached_division__icontains=q) | \                  Q(location__name=q) | \                  Q(location__town=q)              query = query & extra          containers += list(              models.Container.objects.filter(query).exclude(                  pk__in=[c['id'] for c in containers] -            ).values('id', 'cached_label')[:limit]) +            ).values('id', 'cached_division')[:limit])      data = json.dumps( -        [{'id': container['id'], 'value': container['cached_label']} +        [{'id': container['id'], 'value': container['cached_division']}           for container in containers])      return HttpResponse(data, content_type='text/plain') @@ -188,7 +192,6 @@ container_search_wizard = ContainerSearch.as_view([  container_creation_steps = [      ('container-container_creation', forms.ContainerForm), -    ('localisation-container_creation', forms.LocalisationForm),      ('final-container_creation', FinalForm)]  container_creation_wizard = ContainerWizard.as_view( @@ -200,7 +203,6 @@ container_creation_wizard = ContainerWizard.as_view(  container_modification_wizard = ContainerModificationWizard.as_view([      ('selec-container_modification', forms.MainContainerFormSelection),      ('container-container_modification', forms.ContainerModifyForm), -    ('localisation-container_modification', forms.LocalisationForm),      ('final-container_modification', FinalForm)],      label=_("Container modification"),      url_name='container_modification', | 
