Sananaz (Open ERP) has proposed merging
lp:~openerp-dev/openobject-client-web/6.0-opw-17132-sma into
lp:openobject-client-web/6.0.
Requested reviews:
OpenERP Core Team (openerp)
Related bugs:
Bug #783870 in OpenERP Web Client: "Problem with base_contact module
(cherrypy error)"
https://bugs.launchpad.net/openobject-client-web/+bug/783870
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client-web/6.0-opw-17132-sma/+merge/75734
Hello,
1. Install base_contact module
2. Open Customer form view in readonly mode
3. Click on any existing contact rows
It gives traceback.
Problem is related to nested one2many when field in form view, like address is
form view and it contains contact field which is also one2many and it open
popup this time need to pass base parent datas.
Thanks.
--
https://code.launchpad.net/~openerp-dev/openobject-client-web/6.0-opw-17132-sma/+merge/75734
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-client-web/6.0-opw-17132-sma.
=== modified file 'addons/openerp/controllers/openo2m.py'
--- addons/openerp/controllers/openo2m.py 2011-04-04 15:02:36 +0000
+++ addons/openerp/controllers/openo2m.py 2011-09-16 13:31:48 +0000
@@ -49,9 +49,6 @@
form = tw.form_view.ViewForm(vp, name="view_form", action="/openerp/openo2m/save")
cherrypy.request.terp_validators = {}
- if '/' in params.o2m:
- params.o2m = '.'.join(params.o2m.split('/')[-1:])
-
wid = form.screen.widget.get_widgets_by_name(params.o2m)[0]
# save view_params for later phazes
=== modified file 'addons/openerp/static/javascript/o2m.js'
--- addons/openerp/static/javascript/o2m.js 2011-05-10 14:33:47 +0000
+++ addons/openerp/static/javascript/o2m.js 2011-09-16 13:31:48 +0000
@@ -41,6 +41,7 @@
this.parent_view_id = openobject.dom.get(parent_prefix + '_terp_view_id').value;
this.parent_view_ids = jQuery(idSelector(parent_prefix + '_terp_view_ids')).val();
this.parent_view_mode = jQuery(idSelector(parent_prefix + '_terp_view_mode')).val();
+ this.parent_view_type = openobject.dom.get(parent_prefix + '_terp_view_type').value;
// hide new button when editors are visible
if (this.mode == 'tree' && this.inline) {
@@ -51,6 +52,18 @@
});
}
+ this.params_parent = false
+ if (window == window.top){
+ 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_view_type': 'form'
+ };
+ }
var $this = jQuery(idSelector('_o2m_' + name));
var $list = jQuery(idSelector(name));
$list.attr({
@@ -136,6 +149,15 @@
'_terp_view_params/_terp_view_type': 'form'
};
+ var o2m_name;
+ if (this.params_parent) {
+ params = this.params_parent;
+ }
+ else {
+ o2m_name = this.name.split('/');
+ o2m_name = o2m_name[o2m_name.length-1];
+ }
+
while (names.length) {
parents.push(names.shift());
var prefix = parents.join('/');
@@ -153,8 +175,9 @@
_terp_parent_model: this.parent_model,
_terp_parent_id: this.parent_id,
_terp_parent_view_id: this.parent_view_id,
- _terp_o2m: this.name,
+ _terp_o2m: o2m_name ? o2m_name : this.name,
_terp_o2m_model: this.model,
+ _terp_parent_view_type: this.parent_view_type,
_terp_editable: readonly ? 0 : 1
});
_______________________________________________
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