diff --git a/views/__init__.py b/views/__init__.py index ab6783fd3a15ec39e21b670ce905b7f545aaf968_dmlld3MvX19pbml0X18ucHk=..57a92eae8941b1b6a8d09e87002714928d4ea286_dmlld3MvX19pbml0X18ucHk= 100644 --- a/views/__init__.py +++ b/views/__init__.py @@ -9,9 +9,13 @@ _afs.tag_subject_of(('Expense', 'spent_for', '*'), 'main', 'attributes') _afs.tag_subject_of(('Expense', 'spent_for', '*'), 'muledit', 'attributes') _affk.tag_subject_of(('Expense', 'spent_for', '*'), - {'widget': fw.RestrictedAutoCompletionWidget(autocomplete_initfunc='get_concerned_by')}) + {'widget': fw.LazyRestrictedAutoCompletionWidget( + autocomplete_initfunc='get_concerned_by', + autocomplete_settings={'limit': 100, + 'delay': 300}), + }) @monkeypatch(basecontrollers.JSonController) @basecontrollers.jsonize def js_get_concerned_by(self): @@ -13,6 +17,11 @@ @monkeypatch(basecontrollers.JSonController) @basecontrollers.jsonize def js_get_concerned_by(self): - return self._cw.execute('DISTINCT Any W,R ORDERBY R WHERE W ref R').rows + term = self._cw.form['q'] + limit = self._cw.form.get('limit', 50) + return [{'value': eid, 'label': ref} + for eid, ref in self._cw.execute('DISTINCT Any W,R ORDERBY R LIMIT %s WHERE W ref R,' + 'W ref ILIKE %%(term)s' % limit, + {'term': u'%%%s%%' % term})]