SVN: r20250 - trunk/quixote/form
abenard-fVcApmY9cLvQ3/1i3zOLAti2O/[email protected] Fri, 17 Jan 2003 11:59:38 -0500
| Newsgroups | gmane.comp.web.quixote.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: abenard
Date: 2003-01-17 11:59:37 -0500 (Fri, 17 Jan 2003)
New Revision: 20250
Modified:
trunk/quixote/form/widget.py
Log:
Improved speed of sort code for select widgets.
Modified: trunk/quixote/form/widget.py
==============================================================================
--- trunk/quixote/form/widget.py (original)
+++ trunk/quixote/form/widget.py 2003-01-17 11:59:38.000000000 -0500
@@ -364,17 +364,15 @@
options = zip(values, descriptions, keys)
if sort:
- def compare(a, b):
- a_value, a_description, a_key = a
- b_value, b_description, b_key = b
- if a_value is None:
- if b_value is not None:
- return -1
- elif b_value is None:
- return 1
- return cmp(str(a_description).lower(),
- str(b_description).lower())
- options.sort(compare)
+ def make_sort_key(option):
+ value, description, key = option
+ if value is None:
+ return ('', option)
+ else:
+ return (str(description).lower(), option)
+ doptions = map(make_sort_key, options)
+ doptions.sort()
+ options = [item[1] for item in doptions]
self.options = options
def set_allowed_values (self, allowed_values, descriptions=None, sort=0):