query_size_min = 2 class AutocompleteUrlSimpleWithExtra(AutocompleteUrlSimple): query_size = 2 query_size_min = 2 def items(self, query=None, **kwargs): logger.debug("I am exploiting the kwargs [%s]", kwargs) if 'extra_argument' in kwargs and kwargs['extra_argument'] == 'moo': return [{'value': 'moo', 'label': 'moo'}] return super(AutocompleteUrlSimple, self).items(query, **kwargs) # Registration register(AutocompleteColor) register(AutocompleteColorExtra) register(AutocompleteColorShort) register(AutocompletePerson) register(AutocompletePersonExtra) register(AutocompletePersonShort) register(AutocompleteChoicesPages) register(AutocompleteChoicesPagesOverride) register(AutocompletePersonDomain) register(AutocompleteCustomUrl) register(AutocompleteTag) register(AutocompleteContextTag) # URL-proxy autocompletion register(AutocompleteUrlSimple) register(AutocompleteUrlConvert) register(AutocompleteUrlConvertComplex)
def get_queryset(self): email = self.user.email _, domain = email.split('@') return Person.objects.filter(email__endswith=domain) # Do not register this, it's for custom view demo class HiddenAutocomplete(AutocompleteColor): query_size_min = 2 # Do not register this, it's for custom view demo class HiddenAutocompleteURL(AutocompleteColor): query_size_min = 2 url = '/stuff' # Do not register this, it's for custom view demo class HiddenAutocompleteURLReverse(AutocompleteColor): query_size_min = 2 url = reverse_lazy('hidden-autocomplete') # Registration register(AutocompleteColor) register(AutocompletePerson) register(AutocompleteChoicesPages) register(AutocompleteChoicesPagesOverride) register(AutocompletePersonDomain) register(AutocompleteCustomUrl)
class AutocompleteUrlSkipItem(AutocompleteUrlSimple): data_key = 'data' def item(self, obj): if obj['label'] == 'first person': raise SkipItem return super().item(obj) def get_item_url(self, pk): return '{}{}'.format(getattr(settings, 'HTTP_HOST', ''), reverse_lazy('url-proxy:atomic-item', args=[pk])) # Registration register(AutocompleteColor) register(AutocompleteColorExtra) register(AutocompleteColorShort) register(AutocompletePerson) register(AutocompleteLastNameStartsWith) register(AutocompleteFirstNameEqualsIgnoreCase) register(AutocompletePersonExtra) register(AutocompletePersonShort) register(AutocompleteChoicesPages) register(AutocompleteChoicesPagesOverride) register(AutocompletePersonDomain) register(AutocompletePersonDomainSpecial) register(AutocompleteCustomUrl) register(AutocompleteTag) register(AutocompleteContextTag) # URL-proxy autocompletion
query_size_min = 2 class AutocompleteUrlSimpleWithExtra(AutocompleteUrlSimple): query_size = 2 query_size_min = 2 def items(self, query=None, **kwargs): logger.debug("I am exploiting the kwargs [%s]", kwargs) if 'extra_argument' in kwargs and kwargs['extra_argument'] == 'moo': return [{'value': 'moo', 'label': 'moo'}] return super(AutocompleteUrlSimple, self).items(query, **kwargs) # Registration register(AutocompleteColor) register(AutocompleteColorExtra) register(AutocompleteColorShort) register(AutocompletePerson) register(AutocompletePersonExtra) register(AutocompletePersonShort) register(AutocompleteChoicesPages) register(AutocompleteChoicesPagesOverride) register(AutocompletePersonDomain) register(AutocompletePersonDomainSpecial) register(AutocompleteCustomUrl) register(AutocompleteTag) register(AutocompleteContextTag) # URL-proxy autocompletion register(AutocompleteUrlSimple) register(AutocompleteUrlConvert)
choices = ["choice{}".format(i) for i in range(200)] class AutocompleteChoicesPagesOverride(AutocompleteChoicesPages): page_size = 30 class AutocompletePerson(AgnocompleteModel): model = Person fields = ['first_name', 'last_name'] # Special: not integrated into the registry (yet) class AutocompletePersonQueryset(AgnocompleteModel): fields = ['first_name', 'last_name'] def get_queryset(self): return Person.objects.filter(email__contains='example.com') # Special: not integrated into the registry (yet) class AutocompletePersonMisconfigured(AgnocompleteModel): fields = ['first_name', 'last_name'] # Registration register(AutocompleteColor) register(AutocompletePerson) register(AutocompleteChoicesPages) register(AutocompleteChoicesPagesOverride)
from agnocomplete.register import register from agnocomplete.core import AgnocompleteChoices, AgnocompleteModel from .models import Index from django.utils.functional import cached_property from copy import copy import logging logger = logging.getLogger(__name__) _omni = [] class Search(AgnocompleteModel): model = Index fields = ['recname', 'keywords'] value_key = 'recname' label_key = 'recname' def item(self, current_item): return dict( value=current_item.recname, label=current_item.recname, ) # Register models register(Search)