Reviewers: ,
Please review this at http://codereview.tryton.org/719002/
Affected files:
M tryton/gui/window/view_form/screen/screen.py
Index: tryton/gui/window/view_form/screen/screen.py
===================================================================
--- a/tryton/gui/window/view_form/screen/screen.py
+++ b/tryton/gui/window/view_form/screen/screen.py
@@ -87,8 +87,7 @@
self.domain_parser = None
self.pre_validate = False
self.view_to_load = mode[:]
- self.load_view_to_load()
- self.display()
+ self.switch_view()
def __repr__(self):
return '<Screen %s at %s>' % (self.model_name, id(self))
@@ -328,18 +327,19 @@
return len(self.views) + len(self.view_to_load)
def switch_view(self, view_type=None):
- if not self.parent and self.modified():
- return
- self.current_view.set_value()
- if (self.current_record and
- self.current_record not in self.current_record.group):
- self.current_record = None
- fields = self.current_view.get_fields()
- if self.current_record and not
self.current_record.validate(fields):
- self.screen_container.set(self.current_view.widget)
- self.set_cursor()
- self.current_view.display()
- return
+ if self.current_view:
+ if not self.parent and self.modified():
+ return
+ self.current_view.set_value()
+ if (self.current_record and
+ self.current_record not in self.current_record.group):
+ self.current_record = None
+ fields = self.current_view.get_fields()
+ if self.current_record and not
self.current_record.validate(fields):
+ self.screen_container.set(self.current_view.widget)
+ self.set_cursor()
+ self.current_view.display()
+ return
if not view_type or self.current_view.view_type != view_type:
for i in xrange(self.number_of_views):
if len(self.view_to_load):
@@ -412,9 +412,6 @@
children_field=children_field)
self.views.append(view)
-
- self.__current_view = len(self.views) - 1
- self.screen_container.set(self.current_view.widget)
return view
def editable_get(self):