Skip to content

Commit dc136b9

Browse files
author
Richard Jones
committed
handle bad multilink input at item creation time better [SF#917834]
1 parent dcb43d7 commit dc136b9

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

CHANGES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ Fixed:
7979
- existing trackers (ie. live ones) may be used as templates for new
8080
trackers - the TEMPLATE-INFO.txt name entry has the tracker's dir name
8181
appended (so the demo tracker's template name is "classic-demo")
82+
- handle bad multilink input at item creation time better (sf bug 917834)
8283

8384

8485
2004-03-01 0.6.7

roundup/cgi/templating.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,18 @@ def lookupIds(db, prop, ids, fail_ok=False, num_re=re.compile('-?\d+')):
294294
l.append(entry)
295295
return l
296296

297+
def lookupKeys(linkcl, key, ids, num_re=re.compile('-?\d+')):
298+
''' Look up the "key" values for "ids" list - though some may already
299+
be key values, not ids.
300+
'''
301+
l = []
302+
for entry in ids:
303+
if num_re.match(entry):
304+
l.append(cl.get(entry, key))
305+
else:
306+
l.append(entry)
307+
return l
308+
297309
class HTMLPermissions:
298310
''' Helpers that provide answers to commonly asked Permission questions.
299311
'''
@@ -1538,7 +1550,7 @@ def field(self, size=30, showid=0):
15381550
showid=1
15391551
if not showid:
15401552
k = linkcl.labelprop(1)
1541-
value = [linkcl.get(v, k) for v in value]
1553+
value = lookupKeys(linkcl, k, value)
15421554
value = cgi.escape(','.join(value))
15431555
return self.input(name=self._formname,size=size,value=value)
15441556

0 commit comments

Comments
 (0)