]> git.ozlabs.org Git - patchwork/blobdiff - apps/patchwork/filters.py
Resolve removed 'AUTH_PROFILE_MODULE' setting
[patchwork] / apps / patchwork / filters.py
index a722a24f398d43f816141daeb995c1ca5d7eafe1..8c9690eeaf22de4fbe152354ce1bdccea946cc8e 100644 (file)
@@ -22,6 +22,7 @@ from patchwork.models import Person, State
 from django.utils.safestring import mark_safe
 from django.utils.html import escape
 from django.contrib.auth.models import User
+from urllib import quote
 
 class Filter(object):
     def __init__(self, filters):
@@ -349,11 +350,11 @@ class DelegateFilter(Filter):
 
     def condition(self):
         if self.delegate:
-            return self.delegate.get_profile().name()
+            return self.delegate.profile.name()
         return self.no_delegate_str
 
     def _form(self):
-        delegates = User.objects.filter(userprofile__maintainer_projects =
+        delegates = User.objects.filter(profile__maintainer_projects =
                 self.filters.project)
 
         str = '<select name="delegate">'
@@ -377,7 +378,7 @@ class DelegateFilter(Filter):
                 selected = ' selected'
 
             str += '<option %s value="%s">%s</option>' % (selected,
-                    d.id, d.get_profile().name())
+                    d.id, d.profile.name())
         str += '</select>'
 
         return mark_safe(str)
@@ -438,13 +439,21 @@ class Filters:
 
         for (k, v) in self.dict.iteritems():
             if k not in params:
-                params[k] = v[0]
+                params[k] = v
 
         if remove is not None:
             if remove.param in params.keys():
                 del params[remove.param]
 
-        return '?' + '&'.join(['%s=%s' % x for x in params.iteritems()])
+        pairs = params.iteritems()
+
+        def sanitise(s):
+            if not isinstance(s, basestring):
+                s = unicode(s)
+            return quote(s.encode('utf-8'))
+
+        return '?' + '&'.join(['%s=%s' % (sanitise(k), sanitise(v))
+                                    for (k, v) in pairs])
 
     def querystring_without_filter(self, filter):
         return self.querystring(filter)