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.
 
 
 
 

34 lines
1.4 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(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''}
autocomplete_light.register(Country, AutocompleteWithEmptyWidget, name='ACCountry')
autocomplete_light.register(Currency, AutocompleteWithEmptyWidget, name='ACCurrency')
autocomplete_light.register(Measure, AutocompleteWithEmptyWidget, name='ACMeasure')
autocomplete_light.register(Client, AutocompleteClient, name='ACClient')