Reviewers: ,


Please review this at http://codereview.tryton.org/601002/

Affected files:
  M tryton/gui/window/preference.py
  M tryton/gui/window/view_form/model/group.py
  M tryton/gui/window/view_form/screen/screen.py
  M tryton/gui/window/wizard.py


Index: tryton/gui/window/preference.py
===================================================================
--- a/tryton/gui/window/preference.py
+++ b/tryton/gui/window/preference.py
@@ -65,7 +65,6 @@
             return
         self.screen.current_record.set(preferences)
         self.screen.current_record.validate(softvalidation=True)
-        self.screen.screen_container.set(self.screen.current_view.widget)
         self.screen.display(set_cursor=True)

         self.screen.widget.show()
Index: tryton/gui/window/view_form/model/group.py
===================================================================
--- a/tryton/gui/window/view_form/model/group.py
+++ b/tryton/gui/window/view_form/model/group.py
@@ -375,10 +375,7 @@
             return None
         return self[self.current_idx]

-    def add_fields(self, fields, context=None, signal=True):
-        if context is None:
-            context = {}
-
+    def add_fields(self, fields, signal=True):
         to_add = {}
         for name, attr in fields.iteritems():
             if name not in self.fields:
@@ -394,13 +391,11 @@
         for record in self:
             if record.id < 0:
                 new.append(record)
-        ctx = context.copy()

         if len(new) and len(to_add):
-            ctx.update(self.context)
             try:
values = RPCExecute('model', self.model_name, 'default_get',
-                    to_add.keys(), context=ctx)
+                    to_add.keys(), context=self.context)
             except RPCException:
                 return False
             for name in to_add:
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
@@ -83,14 +83,8 @@
             lambda: collections.defaultdict(lambda: None))
         self.domain_parser = None
         self.pre_validate = False
-
-        if mode:
-            self.view_to_load = mode[1:]
-            view_id = False
-            if self.view_ids:
-                view_id = self.view_ids.pop(0)
-            view = self.add_view_id(view_id, mode[0])
-            self.screen_container.set(view.widget)
+        self.view_to_load = mode[:]
+        self.load_view_to_load()
         self.display()

     def __repr__(self):
@@ -356,13 +350,12 @@
         if len(self.view_to_load):
             if self.view_ids:
                 view_id = self.view_ids.pop(0)
-                view_type = self.view_to_load.pop(0)
             else:
                 view_id = False
-                view_type = self.view_to_load.pop(0)
+            view_type = self.view_to_load.pop(0)
             self.add_view_id(view_id, view_type)

-    def add_view_id(self, view_id, view_type, display=False, context=None):
+    def add_view_id(self, view_id, view_type):
         if view_type in self.views_preload:
             view = self.views_preload[view_type]
         else:
@@ -371,9 +364,9 @@
                     view_id, view_type, context=self.context)
             except RPCException:
                 return
-        return self.add_view(view, display, context=context)
+        return self.add_view(view)

-    def add_view(self, view, display=False, context=None):
+    def add_view(self, view):
         arch = view['arch']
         fields = view['fields']

@@ -399,7 +392,7 @@
         children_field = view.get('field_childs')

from tryton.gui.window.view_form.view.widget_parse import WidgetParse
-        self.group.add_fields(fields, context=context)
+        self.group.add_fields(fields)

         parser = WidgetParse(parent=self.parent)
         view = parser.parse(self, xml_dom, self.group.fields,
@@ -407,16 +400,8 @@

         self.views.append(view)

-        if display:
-            self.__current_view = len(self.views) - 1
-            self.screen_container.set(self.current_view.widget)
-            fields = self.current_view.get_fields()
-            if (not self.current_record
-                and self.current_view.view_type == 'form'):
-                self.new()
-            self.set_cursor()
-            self.current_view.cancel()
-            self.display()
+        self.__current_view = len(self.views) - 1
+        self.screen_container.set(self.current_view.widget)
         return view

     def editable_get(self):
Index: tryton/gui/window/wizard.py
===================================================================
--- a/tryton/gui/window/wizard.py
+++ b/tryton/gui/window/wizard.py
@@ -166,7 +166,7 @@
             self._get_button(button)

         self.screen = Screen(view['model'], mode=[], context=self.context)
-        self.screen.add_view(view, display=True)
+        self.screen.add_view(view)
         self.screen.widget.show()
         self.screen.signal_connect(self, 'record-modified',
             self._record_modified)


--
--
[email protected] mailing list



Reply via email to