fixed field_parent references broken in 2.0.x, thanks Marin
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.0.9 (2012-09-27 14:43:52) stable
|
Version 2.0.9 (2012-09-27 15:12:31) stable
|
||||||
|
|||||||
+10
-9
@@ -1142,16 +1142,16 @@ class SQLFORM(FORM):
|
|||||||
if defaults and len(args) - len(defaults) == 4 or len(args) == 4:
|
if defaults and len(args) - len(defaults) == 4 or len(args) == 4:
|
||||||
table = TABLE()
|
table = TABLE()
|
||||||
for id,a,b,c in xfields:
|
for id,a,b,c in xfields:
|
||||||
raw_b = self.field_parent[id] = b
|
newrows = formstyle(id,a,b,c)
|
||||||
newrows = formstyle(id,a,raw_b,c)
|
self.field_parent[id] = b.parent
|
||||||
if type(newrows).__name__ != "tuple":
|
if type(newrows).__name__ != "tuple":
|
||||||
newrows = [newrows]
|
newrows = [newrows]
|
||||||
for newrow in newrows:
|
for newrow in newrows:
|
||||||
table.append(newrow)
|
table.append(newrow)
|
||||||
else:
|
else:
|
||||||
for id,a,b,c in xfields:
|
|
||||||
self.field_parent[id] = b
|
|
||||||
table = formstyle(self, xfields)
|
table = formstyle(self, xfields)
|
||||||
|
for id,a,b,c in xfields:
|
||||||
|
self.field_parent[id] = b.parent
|
||||||
else:
|
else:
|
||||||
raise RuntimeError, 'formstyle not supported'
|
raise RuntimeError, 'formstyle not supported'
|
||||||
return table
|
return table
|
||||||
@@ -1284,14 +1284,15 @@ class SQLFORM(FORM):
|
|||||||
value = self.record[fieldname]
|
value = self.record[fieldname]
|
||||||
else:
|
else:
|
||||||
value = self.table[fieldname].default
|
value = self.table[fieldname].default
|
||||||
if field.type.startswith('list:') and \
|
if field.type.startswith('list:') and isinstance(value, str):
|
||||||
isinstance(value, str):
|
|
||||||
value = [value]
|
value = [value]
|
||||||
row_id = '%s_%s%s' % (self.table, fieldname, SQLFORM.ID_ROW_SUFFIX)
|
row_id = '%s_%s%s' % (self.table, fieldname, SQLFORM.ID_ROW_SUFFIX)
|
||||||
widget = field.widget(field, value)
|
widget = field.widget(field, value)
|
||||||
self.field_parent[row_id].components = [ widget ]
|
parent = self.field_parent[row_id]
|
||||||
self.field_parent[row_id]._traverse(False, hideerror)
|
if parent:
|
||||||
self.custom.widget[ fieldname ] = widget
|
parent.components = [ widget ]
|
||||||
|
parent._traverse(False, hideerror)
|
||||||
|
self.custom.widget[fieldname] = widget
|
||||||
self.accepted = ret
|
self.accepted = ret
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user