openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #05178
[Merge] lp:~openerp-dev/openobject-client-web/6.0-bug-752269-sma into lp:openobject-client-web/6.0
Sananaz (Open ERP) has proposed merging lp:~openerp-dev/openobject-client-web/6.0-bug-752269-sma into lp:openobject-client-web/6.0.
Requested reviews:
OpenERP Core Team (openerp)
Related bugs:
Bug #752269 in OpenERP Web Client: "Pay Invoice in v6.0.2 always prompts "Invalid form, correct red fields""
https://bugs.launchpad.net/openobject-client-web/+bug/752269
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client-web/6.0-bug-752269-sma/+merge/56752
Hello,
Following steps to Reproduced the problem:
1) Create Customer Invoice Add Invoice Line.
2) Validate invoice and click on payment button.
4) Pay Invoice form open ,Fill the all required field and try to save it.
Then it gives error "Invalid form, correct red fields"
Problem is:
In Pay Invoice form, one selection field (`Payment Method`) (It fire onchange and fill one2many and other fields values, so for `account_id` value is not filled and `account_id` field is hidden and required.)
I am surprise after get the solution because problem is not at onchange method but at form_state.js form_setRequired method. because of the error in setRequired subsequent field-values returned by on_change were not reflected.
Thanks.
--
https://code.launchpad.net/~openerp-dev/openobject-client-web/6.0-bug-752269-sma/+merge/56752
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-client-web/6.0-bug-752269-sma.
=== modified file 'addons/openerp/static/javascript/form_state.js'
--- addons/openerp/static/javascript/form_state.js 2011-03-25 05:31:27 +0000
+++ addons/openerp/static/javascript/form_state.js 2011-04-07 12:50:58 +0000
@@ -159,7 +159,7 @@
function form_onAttrChange(container, widgetName, attr, expr, elem) {
var prefix = widgetName.slice(0, widgetName.lastIndexOf('/') + 1);
- var widget = openobject.dom.get(widgetName);
+ var widget = jQuery(idSelector(widgetName));
var result = form_evalExpr(prefix, expr, elem);
@@ -310,7 +310,7 @@
}
var editable = getElement('_terp_editable').value;
- var $field = jQuery(idSelector(field));
+ var $field = typeof(field) == "string" ? jQuery(idSelector(field)) : field;
if (editable == 'True' && required) {
$field.toggleClass('requiredfield', required);
}
@@ -323,9 +323,9 @@
$field.removeClass('errorfield');
var kind = $field.attr('kind');
-
- if (field.type == 'hidden' && kind == 'many2one') {
- form_setRequired(container, openobject.dom.get(field.name + '_text'), required);
+
+ if ($field.attr('type') == 'hidden' && kind == 'many2one') {
+ form_setRequired(container, jQuery(idSelector($field.attr('name')) + '_text'), required);
}
}
Follow ups