[Checkins] SVN: zope3org/trunk/src/zorg/multiform/sort.py handle
batch and sort of subforms
Stefan Martin
s.martin at iwm-kmrc.de
Tue Apr 11 10:40:42 EDT 2006
Log message for revision 66855:
handle batch and sort of subforms
Changed:
A zope3org/trunk/src/zorg/multiform/sort.py
-=-
Added: zope3org/trunk/src/zorg/multiform/sort.py
===================================================================
--- zope3org/trunk/src/zorg/multiform/sort.py 2006-04-11 14:39:57 UTC (rev 66854)
+++ zope3org/trunk/src/zorg/multiform/sort.py 2006-04-11 14:40:41 UTC (rev 66855)
@@ -0,0 +1,36 @@
+
+from zope.interface import implements
+
+from interfaces import ISorter
+
+
+class SchemaSorter(object):
+
+ implements(ISorter)
+
+ def __init__(self,schema,field):
+ self.schema = schema
+ self.name = field.__name__
+ self.field = field
+
+ def sort(self,seq):
+
+ l = []
+ def _v(o):
+ o = self.schema(o)
+ field=self.field.bind(o)
+ v = field.get(o)
+ if hasattr(field,'vocabulary'):
+ # XXX maybe this is an adapter issue
+ v = field.vocabulary.getTerm(v).token
+ return v
+ def _cmp(a,b):
+ # none comparison
+ a,b = a[0],b[0]
+ if a==None and b: return -1
+ if b==None and a: return 1
+ return cmp(a,b)
+ for item in seq:
+ l.append((_v(item[1]),item))
+ l.sort(_cmp)
+ return map(lambda i:i[1],l)
More information about the Checkins
mailing list