annotate core/widgets.py @ 861:e4f8d87c3d30

Configure Markdown logger to reduce noise in logs. Markdown is logging at the INFO level whenever it loads an extension. This looks like it has been fixed in master at GitHub. But until then we will explicitly configure the MARKDOWN logger to log at WARNING or higher.
author Brian Neal <bgneal@gmail.com>
date Mon, 01 Dec 2014 18:36:27 -0600
parents 678a1a2ef55a
children
rev   line source
gremmie@1 1 """
gremmie@1 2 Various useful widgets for the GPP application.
gremmie@1 3 """
gremmie@1 4
gremmie@1 5 from django import forms
gremmie@1 6 from django.utils.safestring import mark_safe
gremmie@1 7 from django.core.urlresolvers import reverse
gremmie@1 8
gremmie@1 9
gremmie@1 10 class AutoCompleteUserInput(forms.TextInput):
gremmie@1 11
gremmie@1 12 def render(self, name, value, attrs=None):
bgneal@149 13 url = reverse('core-ajax_users')
gremmie@1 14 output = super(AutoCompleteUserInput, self).render(name, value, attrs)
bgneal@186 15 return output + mark_safe(u"""\
gremmie@1 16 <script type="text/javascript">
bgneal@186 17 $(function() {
bgneal@186 18 var cache = {};
bgneal@186 19 var cacheSize = 0;
bgneal@186 20 $("#id_%s").autocomplete({
bgneal@186 21 delay: 400,
bgneal@326 22 minLength: 1,
bgneal@186 23 source: function(request, response) {
bgneal@186 24 if (cache[request.term]) {
bgneal@186 25 response(cache[request.term]);
bgneal@186 26 return;
bgneal@186 27 }
bgneal@186 28 $.ajax({
bgneal@186 29 url: "%s",
bgneal@186 30 type: "GET",
bgneal@186 31 data: {
bgneal@186 32 q: request.term,
bgneal@326 33 limit: 15
bgneal@186 34 },
bgneal@186 35 dataType: "json",
bgneal@186 36 success: function(data, textStatus) {
bgneal@326 37 if (cacheSize >= 32) {
bgneal@186 38 cache = {};
bgneal@186 39 cacheSize = 0;
bgneal@186 40 }
bgneal@186 41 cache[request.term] = data;
bgneal@186 42 ++cacheSize;
bgneal@186 43 response(data);
bgneal@186 44 },
bgneal@186 45 error: function(xhr, textStatus, ex) {
bgneal@186 46 alert('Oops, an error occurred. ' + xhr.statusText + ' - ' +
bgneal@186 47 xhr.responseText);
bgneal@186 48 }
bgneal@186 49 });
bgneal@186 50 }
bgneal@186 51 });
gremmie@1 52 });
bgneal@186 53 </script>""" % (name, url))
gremmie@1 54