diff --git a/tryton/gui/window/view_form/view/list_gtk/parser.py b/tryton/gui/window/view_form/view/list_gtk/parser.py index 8f374e76f3..06142ec529 100644 --- a/tryton/gui/window/view_form/view/list_gtk/parser.py +++ b/tryton/gui/window/view_form/view/list_gtk/parser.py @@ -65,6 +65,8 @@ class ParserTree(ParserInterface): if boolean_fields in node_attrs: node_attrs[boolean_fields] = \ bool(int(node_attrs[boolean_fields])) + if fname not in fields: + continue fields[fname].update(node_attrs) node_attrs.update(fields[fname]) cell = CELLTYPES.get(fields[fname]['type'])(fname, treeview, diff --git a/tryton/gui/window/view_form/widget_search/form.py b/tryton/gui/window/view_form/widget_search/form.py index a691f94231..29c0f91d1d 100644 --- a/tryton/gui/window/view_form/widget_search/form.py +++ b/tryton/gui/window/view_form/widget_search/form.py @@ -90,14 +90,15 @@ class Parse(object): if name in ('form','tree'): self.title = attrs.get('string', self.title) self.container.new(self.col) - elif name=='field': - val = attrs.get('select', False) \ - or self.fields[str(attrs['name'])].get('select', False) - if val: - if int(val) <= 1: - self.add_widget(attrs, val) - else: - self.add_widget_end.append((attrs, val)) + elif name == 'field': + if attrs['name'] in self.fields: + val = attrs.get('select', False) \ + or self.fields[attrs['name']].get('select', False) + if val: + if int(val) <= 1: + self.add_widget(attrs, val) + else: + self.add_widget_end.append((attrs, val)) def add_widget(self, attrs, val): ftype = attrs.get('widget', self.fields[str(attrs['name'])]['type'])