improve label boxes autocompletion (#988)

This commit is contained in:
Frédéric Péters 2011-11-23 18:37:01 +01:00
parent 2951486d24
commit b03639d784
2 changed files with 14 additions and 8 deletions

View File

@ -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):

View File

@ -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>