improve label boxes autocompletion (#988)
This commit is contained in:
parent
2951486d24
commit
b03639d784
|
@ -59,6 +59,8 @@ class ListAuthorsView(BrowserView):
|
|||
deputies_folder = property(deputies_folder)
|
||||
|
||||
def __call__(self):
|
||||
from plone.i18n.normalizer.fr import normalizer
|
||||
|
||||
self.portal = getToolByName(self.context, 'portal_url').getPortalObject()
|
||||
self.settings = component.getUtility(IRegistry).forInterface(ITabellioSettings, False)
|
||||
self.request.response.setHeader('Content-type', 'text/plain')
|
||||
|
@ -72,11 +74,11 @@ class ListAuthorsView(BrowserView):
|
|||
return t.Title()
|
||||
|
||||
s = []
|
||||
q = self.request.form.get('q').lower()
|
||||
q = normalizer.normalize(unicode(self.request.form.get('q'), 'utf-8')).lower()
|
||||
for object in self.deputies_folder.objectValues():
|
||||
if object.portal_type != 'themis.datatypes.deputy':
|
||||
continue
|
||||
if q in object.id or q in object.Title().lower():
|
||||
if q in normalizer.normalize(object.Title()).lower():
|
||||
s.append(object)
|
||||
s.sort()
|
||||
return '\n'.join(['%s|%s' % (x.Title(), x.id) for x in s])
|
||||
|
@ -113,7 +115,7 @@ class ListPolgroupsView(BrowserView):
|
|||
return t.Title()
|
||||
|
||||
s = []
|
||||
q = self.request.form.get('q').lower()
|
||||
q = unicode(self.request.form.get('q'), 'utf-8').lower()
|
||||
for object in self.polgroups_folder.objectValues():
|
||||
if object.portal_type != 'themis.datatypes.polgroup':
|
||||
continue
|
||||
|
@ -135,18 +137,22 @@ class ListTopicsView(BrowserView):
|
|||
except KeyError:
|
||||
return 'XXX'
|
||||
|
||||
query_terms = [normalizer.normalize(x).lower() for x in self.request.form.get('q').split()]
|
||||
query_terms = [normalizer.normalize(x).lower() for x in unicode(self.request.form.get('q'), 'utf-8').split()]
|
||||
print 'query terms:', query_terms
|
||||
|
||||
sorted_topics = topics.items()
|
||||
sorted_topics.sort(lambda x,y: cmp(x[1][1].lower(), y[1][1].lower()))
|
||||
|
||||
r = []
|
||||
for key, value in topics.items():
|
||||
for key, value in sorted_topics:
|
||||
for term in query_terms:
|
||||
if not term in value[1]:
|
||||
if not term in value[1].lower():
|
||||
break
|
||||
else:
|
||||
r.append('%s|%s' % (value[0], key))
|
||||
if len(r) > 30:
|
||||
break
|
||||
return '\n'.join(sorted(r))
|
||||
return '\n'.join(r)
|
||||
|
||||
|
||||
class IAuthorsWidget(ITextWidget):
|
||||
|
|
|
@ -67,7 +67,7 @@ if(typeof(String.prototype.trim) === "undefined") {
|
|||
$('.polgroup-autocomplete').each(sync_polgroups).autocomplete(PORTAL_URL+'/listPolgroups', {
|
||||
}).result(autocomplete_ready);
|
||||
$('.topic-autocomplete').each(sync_topics).autocomplete(PORTAL_URL+'/listTopics', {
|
||||
}).result(autocomplete_ready);
|
||||
'matchContains': true, 'scroll': true, 'max': 30}).result(autocomplete_ready);
|
||||
});
|
||||
})(jQuery);
|
||||
</script>
|
||||
|
|
Reference in New Issue