]> git.ozlabs.org Git - patchwork/blobdiff - apps/patchwork/filters.py
Use generic email confirmation object
[patchwork] / apps / patchwork / filters.py
index 228c9c2ac2da2c21c8b88ce30ff70b3da297031d..52fc03fe19d655f78324cea43ef3533a7d232b6e 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):
@@ -188,8 +189,18 @@ class StateFilter(Filter):
 
     def _form(self):
         str = '<select name="%s">' % self.param
-        str += '<option value="%s">any</option>' % self.any_key
-        str += '<option value="">%s</option>' % self.action_req_str
+
+        selected = ''
+        if not self.applied:
+            selected = 'selected'
+        str += '<option %s value="%s">any</option>' % (selected, self.any_key)
+
+        selected = ''
+        if self.applied and self.state == None:
+            selected = 'selected'
+        str += '<option %s value="">%s</option>' % \
+               (selected, self.action_req_str)
+
         for state in State.objects.all():
             selected = ''
             if self.state and self.state == state:
@@ -428,13 +439,14 @@ 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()])
+        return '?' + '&'.join(['%s=%s' % (quote(k), quote(v))
+                                for (k,v) in params.iteritems()])
 
     def querystring_without_filter(self, filter):
         return self.querystring(filter)