Skip to content

Commit b22ddda

Browse files
committed
Fix issue2550512
1 parent b5bc04c commit b22ddda

File tree

1 file changed

+22
-17
lines changed

1 file changed

+22
-17
lines changed

roundup/cgi/templating.py

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -530,24 +530,10 @@ def __getitem__(self, item):
530530
for klass, htmlklass in propclasses:
531531
if not isinstance(prop, klass):
532532
continue
533-
if form.has_key(item):
534-
if isinstance(prop, hyperdb.Multilink):
535-
value = lookupIds(self._db, prop,
536-
handleListCGIValue(form[item]), fail_ok=1)
537-
elif isinstance(prop, hyperdb.Link):
538-
value = form.getfirst(item).strip()
539-
if value:
540-
value = lookupIds(self._db, prop, [value],
541-
fail_ok=1)[0]
542-
else:
543-
value = None
544-
else:
545-
value = form.getfirst(item).strip() or None
533+
if isinstance(prop, hyperdb.Multilink):
534+
value = []
546535
else:
547-
if isinstance(prop, hyperdb.Multilink):
548-
value = []
549-
else:
550-
value = None
536+
value = None
551537
return htmlklass(self._client, self._classname, None, prop, item,
552538
value, self._anonymous)
553539

@@ -1206,6 +1192,25 @@ def __init__(self, client, classname, nodeid, prop, name, value,
12061192
else:
12071193
self._formname = name
12081194

1195+
# If no value is already present for this property, see if one
1196+
# is specified in the current form.
1197+
form = self._client.form
1198+
if not self._value and form.has_key(self._formname):
1199+
if isinstance(prop, hyperdb.Multilink):
1200+
value = lookupIds(self._db, prop,
1201+
handleListCGIValue(form[self._formname]),
1202+
fail_ok=1)
1203+
elif isinstance(prop, hyperdb.Link):
1204+
value = form.getfirst(self._formname).strip()
1205+
if value:
1206+
value = lookupIds(self._db, prop, [value],
1207+
fail_ok=1)[0]
1208+
else:
1209+
value = None
1210+
else:
1211+
value = form.getfirst(self._formname).strip() or None
1212+
self._value = value
1213+
12091214
HTMLInputMixin.__init__(self)
12101215

12111216
def __repr__(self):

0 commit comments

Comments
 (0)