← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-client/trunk_client_rga into lp:openobject-client

 

RGA(OpenERP) has proposed merging lp:~openerp-dev/openobject-client/trunk_client_rga into lp:openobject-client.

Requested reviews:
  OpenERP sa GTK client R&D (openerp-dev-gtk)


Hello
    For support concurrency update validations from client side merge revision 1605
-- 
https://code.launchpad.net/~openerp-dev/openobject-client/trunk_client_rga/+merge/39427
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-client/trunk_client_rga.
=== modified file 'bin/modules/gui/main.py'
--- bin/modules/gui/main.py	2010-10-20 16:52:09 +0000
+++ bin/modules/gui/main.py	2010-10-27 09:29:47 +0000
@@ -1130,10 +1130,12 @@
         win.set_transient_for(self.window)
         win.show_all()
 
-    def sig_win_menu(self, widget=None, quiet=True):
+    def sig_win_menu(self, widget=None, quiet=True, reload = False):
         for p in range(len(self.pages)):
             if self.pages[p].model=='ir.ui.menu':
                 self.notebook.set_current_page(p)
+                if reload:
+                    self.pages[p].handlers['but_reload']()
                 return True
         res = self.sig_win_new(widget, type='menu_id', quiet=quiet)
         if not res:

=== modified file 'bin/widget/model/record.py'
--- bin/widget/model/record.py	2010-10-18 18:01:33 +0000
+++ bin/widget/model/record.py	2010-10-27 09:29:47 +0000
@@ -137,6 +137,7 @@
                     return self.id
                 value = self.get(get_readonly=False, get_modifiedonly=True)
                 context = self.context_get().copy()
+                self.update_context_with_concurrency_check_data(context)
                 res = self.rpc.write([self.id], value, context)
                 #if type(res) in (int, long):
                 #    self.id = res
@@ -346,7 +347,7 @@
         if not attrs.get('confirm', False) or common.sur(attrs['confirm']):
             button_type = attrs.get('type', 'workflow')
             obj = service.LocalService('action.main')
-
+            
             if button_type == 'workflow':
                 result = rpc.session.rpc_exec_auth('/object', 'exec_workflow',
                                                    self.resource, attrs['name'], self.id)
@@ -370,6 +371,8 @@
                 result = rpc.session.rpc_exec_auth('/object', 'execute',
                                                    self.resource,attrs['name'], [id], context)
                 if isinstance(result, dict):
+                    if 'menu_reload' in result:
+                        service.LocalService('gui.main').sig_win_menu(reload = True)
                     if not result.get('nodestroy', False):
                         screen.window.destroy()
                     obj._exec_action(result, {}, context=context)

=== modified file 'bin/widget/view/form_gtk/parser.py'
--- bin/widget/view/form_gtk/parser.py	2010-10-18 18:01:33 +0000
+++ bin/widget/view/form_gtk/parser.py	2010-10-27 09:29:47 +0000
@@ -88,7 +88,6 @@
         model = self.form.screen.current_model
         self.form.set_value()
         button_type = self.attrs.get('special', '')
-
         if button_type=='cancel':
             self.form.screen.window.destroy()
             if 'name' in self.attrs.keys():
@@ -110,6 +109,8 @@
                                 '/object', 'execute',
                                 self.form.screen.name,
                                 self.attrs['name'],[], model.context_get())
+                    if 'menu_reload' in result:
+                        service.LocalService('gui.main').sig_win_menu(reload = True)
                     datas = {}
                     obj = service.LocalService('action.main')
                     obj._exec_action(result,datas,context=self.form.screen.context)


Follow ups