Merge lp:~openerp-commiter/openobject-client/6.0-opw-381574-nch into lp:openobject-client/6.0

Proposed by Naresh(OpenERP)
Status: Merged
Merged at revision: 1943
Proposed branch: lp:~openerp-commiter/openobject-client/6.0-opw-381574-nch
Merge into: lp:openobject-client/6.0
Diff against target: 58 lines (+9/-4)
3 files modified
bin/widget/model/field.py (+2/-2)
bin/widget/model/record.py (+6/-1)
bin/widget/view/form_gtk/interface.py (+1/-1)
To merge this branch: bzr merge lp:~openerp-commiter/openobject-client/6.0-opw-381574-nch
Reviewer Review Type Date Requested Status
Xavier ALT Pending
Review via email: mp+94925@code.launchpad.net

Description of the change

[FIX/IMP][381574]:on_change call to pass context defined on the field"

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bin/widget/model/field.py'
--- bin/widget/model/field.py 2011-11-04 10:09:40 +0000
+++ bin/widget/model/field.py 2012-02-28 09:20:14 +0000
@@ -61,7 +61,7 @@
61 if self.get_state_attrs(model).get('readonly', False):61 if self.get_state_attrs(model).get('readonly', False):
62 return62 return
63 if self.attrs.get('on_change',False):63 if self.attrs.get('on_change',False):
64 model.on_change(self.attrs['on_change'])64 model.on_change(self.attrs['on_change'], field = self)
65 if self.attrs.get('change_default', False):65 if self.attrs.get('change_default', False):
66 model.cond_default(self.attrs['name'], self.get(model))66 model.cond_default(self.attrs['name'], self.get(model))
6767
@@ -119,7 +119,7 @@
119 res = self.set(model, value)119 res = self.set(model, value)
120 model.cond_default(self.attrs['name'], self.get(model))120 model.cond_default(self.attrs['name'], self.get(model))
121 if self.attrs.get('on_change',False):121 if self.attrs.get('on_change',False):
122 model.on_change(self.attrs['on_change'])122 model.on_change(self.attrs['on_change'], field=self)
123 return res123 return res
124124
125 def get_default(self, model):125 def get_default(self, model):
126126
=== modified file 'bin/widget/model/record.py'
--- bin/widget/model/record.py 2011-06-10 15:07:06 +0000
+++ bin/widget/model/record.py 2012-02-28 09:20:14 +0000
@@ -297,13 +297,18 @@
297 return val297 return val
298298
299 #XXX Shoud use changes of attributes (ro, ...)299 #XXX Shoud use changes of attributes (ro, ...)
300 def on_change(self, callback):300 def on_change(self, callback, field=False):
301 match = re.match('^(.*?)\((.*)\)$', callback)301 match = re.match('^(.*?)\((.*)\)$', callback)
302 if not match:302 if not match:
303 raise Exception, 'ERROR: Wrong on_change trigger: %s' % callback303 raise Exception, 'ERROR: Wrong on_change trigger: %s' % callback
304 func_name = match.group(1)304 func_name = match.group(1)
305 arg_names = [n.strip() for n in match.group(2).split(',') if n.strip()]305 arg_names = [n.strip() for n in match.group(2).split(',') if n.strip()]
306 idx = False
307 if 'context' in arg_names:
308 idx = arg_names.index('context')
306 args = [self.expr_eval(arg) for arg in arg_names]309 args = [self.expr_eval(arg) for arg in arg_names]
310 if idx and field:
311 args[idx].update(field.context_get(self))
307 ids = self.id and [self.id] or []312 ids = self.id and [self.id] or []
308 response = getattr(self.rpc, func_name)(ids, *args)313 response = getattr(self.rpc, func_name)(ids, *args)
309 if response:314 if response:
310315
=== modified file 'bin/widget/view/form_gtk/interface.py'
--- bin/widget/view/form_gtk/interface.py 2010-12-13 15:45:20 +0000
+++ bin/widget/view/form_gtk/interface.py 2012-02-28 09:20:14 +0000
@@ -144,7 +144,7 @@
144144
145 def sig_changed(self):145 def sig_changed(self):
146 if self.attrs.get('on_change',False):146 if self.attrs.get('on_change',False):
147 self._view.view_form.screen.on_change(self.attrs['on_change'])147 self._view.view_form.screen.on_change(self.attrs['on_change'], field=self._view.modelfield)
148148
149 def grab_focus(self):149 def grab_focus(self):
150 return self.widget.grab_focus()150 return self.widget.grab_focus()