Mercurial > p > roundup > code
diff roundup/cgi/templating.py @ 3198:0b7990f54778
fixed broken csv import in roundup.admin module
fixed braino in HTMLClass.filter() [SF#1124213]
(also, better generator)
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Wed, 16 Feb 2005 21:52:32 +0000 |
| parents | f887e55edc94 |
| children | d2b1a946fdf4 |
line wrap: on
line diff
--- a/roundup/cgi/templating.py Wed Feb 16 14:22:16 2005 +0000 +++ b/roundup/cgi/templating.py Wed Feb 16 21:52:32 2005 +0000 @@ -614,7 +614,7 @@ check = self._db.security.hasPermission userid = self._client.userid - l = [HTMLItem(self._client, self.classname, x) + l = [HTMLItem(self._client, self.classname, id) for id in self._klass.filter(None, filterspec, sort, group) if check('View', userid, self.classname, itemid=id)] return l @@ -1688,18 +1688,6 @@ # def checklist(self, ...) -def multilinkGenerator(classname, client, values): - id = -1 - check = client.db.security.hasPermission - userid = client.userid - while 1: - id += 1 - if id >= len(values): - raise StopIteration - value = values[id] - if check('View', userid, classname, itemid=value): - yield HTMLItem(client, classname, value) - class MultilinkHTMLProperty(HTMLProperty): ''' Multilink HTMLProperty @@ -1723,18 +1711,26 @@ ''' no extended attribute accesses make sense here ''' raise AttributeError, attr + def multilinkGenerator(self, values): + '''Used to iterate over only the View'able items in a class.''' + check = self._db.security.hasPermission + userid = self._client.userid + classname = self._prop.classname + for value in values: + if check('View', userid, classname, itemid=value): + yield HTMLItem(self._client, classname, value) + def __iter__(self): ''' iterate and return a new HTMLItem ''' - return multilinkGenerator(self._prop.classname, self._client, - self._value) + return self.multilinkGenerator(self._value) def reverse(self): ''' return the list in reverse order ''' l = self._value[:] l.reverse() - return multilinkGenerator(self._prop.classname, self._client, l) + return self.multilinkGenerator(l) def sorted(self, property): ''' Return this multilink sorted by the given property '''
