Mercurial > public > sg101
view gpp/core/widgets.py @ 557:7247a406f92b
Merging change to requirements.txt made on production server.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sun, 29 Jan 2012 14:45:09 -0600 |
parents | 5453aedf95fd |
children |
line wrap: on
line source
""" Various useful widgets for the GPP application. """ from django import forms from django.utils.safestring import mark_safe from django.core.urlresolvers import reverse from django.conf import settings class AutoCompleteUserInput(forms.TextInput): def render(self, name, value, attrs=None): url = reverse('core-ajax_users') output = super(AutoCompleteUserInput, self).render(name, value, attrs) return output + mark_safe(u"""\ <script type="text/javascript"> $(function() { var cache = {}; var cacheSize = 0; $("#id_%s").autocomplete({ delay: 400, minLength: 1, source: function(request, response) { if (cache[request.term]) { response(cache[request.term]); return; } $.ajax({ url: "%s", type: "GET", data: { q: request.term, limit: 15 }, dataType: "json", success: function(data, textStatus) { if (cacheSize >= 32) { cache = {}; cacheSize = 0; } cache[request.term] = data; ++cacheSize; response(data); }, error: function(xhr, textStatus, ex) { alert('Oops, an error occurred. ' + xhr.statusText + ' - ' + xhr.responseText); } }); } }); }); </script>""" % (name, url))