X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=roundup%2Fcgi%2Ftemplating.py;h=cd4a87194f2705904a0b65e21607d3e79a9ccd3c;hb=97776626afe06ffe20eb1449199443b79c74cbe5;hp=4eacc8cc258846563f534b4a455cc4345ff074fe;hpb=ade2b8b84eee1b055043145f715717b24a0c4bcb;p=roundup.git diff --git a/roundup/cgi/templating.py b/roundup/cgi/templating.py index 4eacc8c..cd4a871 100644 --- a/roundup/cgi/templating.py +++ b/roundup/cgi/templating.py @@ -338,7 +338,7 @@ class HTMLClass(HTMLPermissions): return klass(self._client, self.classname, itemid) - def properties(self): + def properties(self, sort=1): ''' Return HTMLProperty for all of this class' properties. ''' l = [] @@ -351,6 +351,8 @@ class HTMLClass(HTMLPermissions): if isinstance(prop, klass): l.append(htmlklass(self._client, self._classname, '', prop, name, value, self._anonymous)) + if sort: + l.sort(lambda a,b:cmp(a._name, b._name)) return l def list(self): @@ -1457,13 +1459,17 @@ class HTMLRequest: if self.classname is not None: props = db.getclass(self.classname).getprops() for name in self.filter: - if self.form.has_key(name): - prop = props[name] - fv = self.form[name] - if (isinstance(prop, hyperdb.Link) or - isinstance(prop, hyperdb.Multilink)): - self.filterspec[name] = lookupIds(db, prop, - handleListCGIValue(fv)) + if not self.form.has_key(name): + continue + prop = props[name] + fv = self.form[name] + if (isinstance(prop, hyperdb.Link) or + isinstance(prop, hyperdb.Multilink)): + self.filterspec[name] = lookupIds(db, prop, + handleListCGIValue(fv)) + else: + if isinstance(fv, type([])): + self.filterspec[name] = [v.value for v in fv] else: self.filterspec[name] = fv.value