You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1.1 KiB
28 lines
1.1 KiB
# -*- 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(user=user_).\
|
|
filter(Q(name__contains=q) | Q(inn=q) | Q(okpo=q)).\
|
|
exclude(pk__in=exclude)
|
|
|
|
return self.order_choices(choices)[0:self.limit_choices]
|
|
|
|
|
|
autocomplete_light.register(Country, name='ACCountry')
|
|
autocomplete_light.register(Currency, name='ACCurrency')
|
|
autocomplete_light.register(Measure, name='ACMeasure')
|
|
autocomplete_light.register(Client, AutocompleteClient, name='ACClient')
|
|
|