Xavier ALT (OpenERP) has proposed merging
lp:~openerp-dev/openobject-client-web/6.0-opw-574308-xal into
lp:openobject-client-web.
Requested reviews:
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client-web/6.0-opw-574308-xal/+merge/109344
Hi,
This fix a problem when clicking on the "New" button of a "one2many field" and
the parent record is currenctly not saved.
Steps:
- Go to products, edit one and go to "Suppliers" tab
- Clic on "New" to add a supplier.
- Within the PopUp window, choose a supplier.
- Clic on "New" from the a pricelist
Current: page reload, but on line appears. We have to clic "New" a seconds time
to display the "new" empty line.
Expect: we should directly get a "new" empty line.
Cheers,
Xavier
--
https://code.launchpad.net/~openerp-dev/openobject-client-web/6.0-opw-574308-xal/+merge/109344
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-client-web/6.0-opw-574308-xal.
=== modified file 'addons/openerp/controllers/listgrid.py'
--- addons/openerp/controllers/listgrid.py 2012-06-01 10:38:30 +0000
+++ addons/openerp/controllers/listgrid.py 2012-06-08 12:27:34 +0000
@@ -232,6 +232,15 @@
def get(self, **kw):
params, data = TinyDict.split(kw)
+ if not params.model and params.o2m and params.view_params.model:
+ # Ok, no base model, copy infos from _terp_view_params.
+ # This is required to be able to correctly build the form view
+ # and to get the 'widget' related to the requested listgrid
+ view_params_base, x = TinyDict.split(params.view_params)
+ view_params_update = dict([(k[6:], v) for k, v in view_params_base.iteritems()
+ if k.startswith('_terp_') ])
+ params.update(view_params_update)
+
groupby = params.get('_terp_group_by_ctx')
if groupby and isinstance(groupby, basestring):
groupby = groupby.split(',')
=== modified file 'addons/openerp/static/javascript/listgrid.js'
--- addons/openerp/static/javascript/listgrid.js 2012-06-01 10:38:30 +0000
+++ addons/openerp/static/javascript/listgrid.js 2012-06-08 12:27:34 +0000
@@ -734,14 +734,15 @@
var self = this;
var current_id = edit_inline ? (parseInt(edit_inline) || 0) : edit_inline;
+ var prefix = this.name == '_terp_list' ? '' : this.name + '/';
var args = jQuery.extend(this.makeArgs(), {
_terp_source: this.name,
_terp_edit_inline: edit_inline,
_terp_source_default_get: default_get_ctx,
_terp_concurrency_info: concurrency_info,
- _terp_editable: openobject.dom.get('_terp_editable').value,
- _terp_group_by_ctx: openobject.dom.get('_terp_group_by_ctx').value
+ _terp_editable: openobject.dom.get(prefix + '_terp_editable').value,
+ _terp_group_by_ctx: openobject.dom.get(prefix + '_terp_group_by_ctx').value
});
if (this.name == '_terp_list') {
=== modified file 'addons/openerp/static/javascript/o2m.js'
--- addons/openerp/static/javascript/o2m.js 2011-09-19 12:50:15 +0000
+++ addons/openerp/static/javascript/o2m.js 2012-06-08 12:27:34 +0000
@@ -54,13 +54,20 @@
this.params_parent = false
if (this.m2o == "False"){
+ var params_parent_prefix = '';
+ if (!openobject.dom.get('_terp_model')) {
+ // Handle case when we create a new one2many record over an unsaved
+ // parent record - in that we not do have a valid '_terp_model'
+ // within the document, so we just copy original information.
+ params_parent_prefix = '_terp_view_params/';
+ }
this.params_parent = {
- '_terp_view_params/_terp_model': openobject.dom.get('_terp_model').value,
- '_terp_view_params/_terp_id': openobject.dom.get('_terp_id').value,
- '_terp_view_params/_terp_view_id':openobject.dom.get('_terp_view_id').value,
- '_terp_view_params/_terp_view_ids': openobject.dom.get('_terp_view_ids').value,
- '_terp_view_params/_terp_view_mode': openobject.dom.get('_terp_view_mode').value,
- '_terp_view_params/_terp_context': openobject.dom.get('_terp_context').value || {},
+ '_terp_view_params/_terp_model': openobject.dom.get(params_parent_prefix + '_terp_model').value,
+ '_terp_view_params/_terp_id': openobject.dom.get(params_parent_prefix + '_terp_id').value,
+ '_terp_view_params/_terp_view_id':openobject.dom.get(params_parent_prefix + '_terp_view_id').value,
+ '_terp_view_params/_terp_view_ids': openobject.dom.get(params_parent_prefix + '_terp_view_ids').value,
+ '_terp_view_params/_terp_view_mode': openobject.dom.get(params_parent_prefix + '_terp_view_mode').value,
+ '_terp_view_params/_terp_context': openobject.dom.get(params_parent_prefix + '_terp_context').value || {},
'_terp_view_params/_terp_view_type': 'form'
};
}
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp