Merge lp:~openerp-commiter/openobject-client/5.0-opw-52718-nch into lp:openobject-client/5.0

Proposed by Naresh(OpenERP)
Status: Needs review
Proposed branch: lp:~openerp-commiter/openobject-client/5.0-opw-52718-nch
Merge into: lp:openobject-client/5.0
Diff against target: 30 lines (+11/-0)
1 file modified
bin/widget/view/form_gtk/one2many_list.py (+11/-0)
To merge this branch: bzr merge lp:~openerp-commiter/openobject-client/5.0-opw-52718-nch
Reviewer Review Type Date Requested Status
Olivier Laurent (Open ERP) Pending
Review via email: mp+86664@code.launchpad.net

Description of the change

Hello,

There is a an error with one2many object in any form of OpenERP v5 It happens on all forms,
Here are the steps to reproduce:
1. Open any saved data (ie. Sale Order)
2. Change some data in one2many object (ie. quantites on lines) and
don't save, just press OK (quantity will change in one2many list)
3. Add a new line
4. Save the whole data (form)
5. The data you change in step 2. will return to original data

Regards,

To post a comment you must log in.

Unmerged revisions

1100. By Naresh(OpenERP)

[FIX]:reload of previous values in O2M

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bin/widget/view/form_gtk/one2many_list.py'
--- bin/widget/view/form_gtk/one2many_list.py 2010-04-15 07:57:53 +0000
+++ bin/widget/view/form_gtk/one2many_list.py 2011-12-22 07:06:27 +0000
@@ -288,15 +288,26 @@
288 self._readonly = False288 self._readonly = False
289 self.screen.current_view.widget.set_sensitive(True)289 self.screen.current_view.widget.set_sensitive(True)
290 else:290 else:
291 modified = {}
291 ok = 1292 ok = 1
292 dia = dialog(self.attrs['relation'], parent=self._view.model, attrs=self.attrs, model_ctx=self.screen.models._context, default_get_ctx=ctx, window=self._window, readonly=self._readonly)293 dia = dialog(self.attrs['relation'], parent=self._view.model, attrs=self.attrs, model_ctx=self.screen.models._context, default_get_ctx=ctx, window=self._window, readonly=self._readonly)
293 while ok:294 while ok:
294 ok, value = dia.run()295 ok, value = dia.run()
295 if ok:296 if ok:
297 for m in self.screen.models.models:
298 if m.is_modified():
299 modified.setdefault(m, {})
300 modified[m] = m.get()
296 self.screen.models.model_add(value)301 self.screen.models.model_add(value)
297 value.signal('record-changed', value.parent)302 value.signal('record-changed', value.parent)
298 self.screen.display()303 self.screen.display()
299 dia.new()304 dia.new()
305 if modified:
306 for model, val in modified.iteritems():
307 for k, v in val.iteritems():
308 if isinstance(v,list) and len(v) and isinstance(v[0],tuple):
309 val[k] = v[0][2]
310 model.set(val, True)
300 dia.destroy()311 dia.destroy()
301312
302 def _sig_edit(self, *args):313 def _sig_edit(self, *args):