@@ -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