Sorted list with options for use with SingleSelectField

1 view
Skip to first unread message

Cecil Westerhof

unread,
May 12, 2008, 10:02:34 PM5/12/08
to TurboGears
I defined the folowing function:
#####
def getOptions(label, table):
return [(-1, 'Select %s' % (label))] +\
sorted([(entry.id, str(entry)) for entry in table.select()],
key = operator.itemgetter(1))
#####

I can be used with:
#####
owner = SingleSelectField(label = ownerLabel,
options = getOptions(ownerLabel, Owner)
default = 1)
#####

In this way the select field starts with an entry that tells to select
a value. And after that it has on ordered list off all the values of
the foreign key.
I hope it is usefull for someone.

--
Cecil Westerhof

Cecil Westerhof

unread,
May 12, 2008, 11:03:49 PM5/12/08
to TurboGears
2008/5/13 Cecil Westerhof <cldwes...@gmail.com>:

> I defined the folowing function:
> #####
> def getOptions(label, table):
> return [(-1, 'Select %s' % (label))] +\
> sorted([(entry.id, str(entry)) for entry in table.select()],
> key = operator.itemgetter(1))
> #####

A sligthy better version:
#####
def cmpOptions(a, b):
temp1 = a[1].lower()
temp2 = b[1].lower()
if temp1 < temp2:
return -1
if temp1 > temp2:
return 1
return 0

def getOptions(label, table):
options = [(entry.id, str(entry)) for entry in table.select()]
options.sort(cmpOptions)
return [(-1, 'Selecteer %s' % (label))] + options
#####

Now dummy comes before Test.

--
Cecil Westerhof

Reply all
Reply to author
Forward
0 new messages