fixed field_parent references broken in 2.0.x, thanks Marin

This commit is contained in:
mdipierro
2012-09-27 15:12:36 -05:00
parent 4b73f249dd
commit 7709074d7c
2 changed files with 11 additions and 10 deletions

View File

@@ -1 +1 @@
Version 2.0.9 (2012-09-27 14:43:52) stable
Version 2.0.9 (2012-09-27 15:12:31) stable

View File

@@ -1142,16 +1142,16 @@ class SQLFORM(FORM):
if defaults and len(args) - len(defaults) == 4 or len(args) == 4:
table = TABLE()
for id,a,b,c in xfields:
raw_b = self.field_parent[id] = b
newrows = formstyle(id,a,raw_b,c)
newrows = formstyle(id,a,b,c)
self.field_parent[id] = b.parent
if type(newrows).__name__ != "tuple":
newrows = [newrows]
for newrow in newrows:
table.append(newrow)
else:
for id,a,b,c in xfields:
self.field_parent[id] = b
table = formstyle(self, xfields)
for id,a,b,c in xfields:
self.field_parent[id] = b.parent
else:
raise RuntimeError, 'formstyle not supported'
return table
@@ -1284,14 +1284,15 @@ class SQLFORM(FORM):
value = self.record[fieldname]
else:
value = self.table[fieldname].default
if field.type.startswith('list:') and \
isinstance(value, str):
if field.type.startswith('list:') and isinstance(value, str):
value = [value]
row_id = '%s_%s%s' % (self.table, fieldname, SQLFORM.ID_ROW_SUFFIX)
widget = field.widget(field, value)
self.field_parent[row_id].components = [ widget ]
self.field_parent[row_id]._traverse(False, hideerror)
self.custom.widget[ fieldname ] = widget
parent = self.field_parent[row_id]
if parent:
parent.components = [ widget ]
parent._traverse(False, hideerror)
self.custom.widget[fieldname] = widget
self.accepted = ret
return ret