# -*- coding: utf-8 -*- import autocomplete_light from django.db.models import Q from models import (Country, Currency, Measure) from project.customer.models import Client class AutocompleteClient(autocomplete_light.AutocompleteModelBase): '''Автокомплит клиента в зависимости от юзера ''' autocomplete_js_attributes = {'placeholder': u'Название предприятия или ИНН или ОКПО'} def choices_for_request(self): q = self.request.GET.get('q', '') user_ = self.request.user exclude = self.request.GET.getlist('exclude', []) choices = self.choices.filter(company=user_.profile).\ filter(Q(name__icontains=q) | Q(inn=q) | Q(okpo=q)).\ exclude(pk__in=exclude) return self.order_choices(choices)[0:self.limit_choices] class AutocompleteWithEmptyWidget(autocomplete_light.AutocompleteModelBase): '''Автокомплит единиц измерения ''' autocomplete_js_attributes = {'placeholder': u''} class AutocompleteCurrency(autocomplete_light.AutocompleteModelBase): '''Автокомплит валют ''' autocomplete_js_attributes = {'placeholder': u'Название валюты'} search_fields = ('name', '^abc_code') autocomplete_light.register(Country, AutocompleteWithEmptyWidget, name='ACCountry') autocomplete_light.register(Currency, AutocompleteCurrency, name='ACCurrency') autocomplete_light.register(Measure, AutocompleteWithEmptyWidget, name='ACMeasure') autocomplete_light.register(Client, AutocompleteClient, name='ACClient')