[FIX] web_widget_many2many_tags_multi_selection: Correct handle of 'Save & New'

pull/1762/head
Alexandre D. Díaz 2020-12-15 19:46:03 +01:00
parent 130fee87ef
commit f434470e88
4 changed files with 32 additions and 0 deletions

View File

@ -60,6 +60,7 @@ Contributors
* Jamin Shah <jaiminshah2009@gmail.com>
* Maxence Groine <mgroine@fiefmanage.ch>
* Anand Kansagra <kansagraanand@hotmail.com>
* Alexandre D. Díaz <alexandre.diaz@tecnativa.com>
Maintainers
~~~~~~~~~~~

View File

@ -2,3 +2,4 @@
* Jamin Shah <jaiminshah2009@gmail.com>
* Maxence Groine <mgroine@fiefmanage.ch>
* Anand Kansagra <kansagraanand@hotmail.com>
* Alexandre D. Díaz <alexandre.diaz@tecnativa.com>

View File

@ -406,6 +406,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<li>Jamin Shah &lt;<a class="reference external" href="mailto:jaiminshah2009&#64;gmail.com">jaiminshah2009&#64;gmail.com</a>&gt;</li>
<li>Maxence Groine &lt;<a class="reference external" href="mailto:mgroine&#64;fiefmanage.ch">mgroine&#64;fiefmanage.ch</a>&gt;</li>
<li>Anand Kansagra &lt;<a class="reference external" href="mailto:kansagraanand&#64;hotmail.com">kansagraanand&#64;hotmail.com</a>&gt;</li>
<li>Alexandre D. Díaz &lt;<a class="reference external" href="mailto:alexandre.diaz&#64;tecnativa.com">alexandre.diaz&#64;tecnativa.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">

View File

@ -7,6 +7,10 @@ odoo.define('web_widget_many2many_tags_multi_selection.multiple_tags', function
var _t = core._t;
rel_fields.FieldMany2One.include({
/**
* @override
*/
_searchCreatePopup: function(view, ids, context) {
var self = this;
@ -38,4 +42,29 @@ odoo.define('web_widget_many2many_tags_multi_selection.multiple_tags', function
})).open();
},
});
rel_fields.FieldMany2ManyTags.include({
/**
* Odoo destroy the one2many and all childrens.
* So, we need recreate the 'create popup'.
*
* @override
*/
_renderEdit: function () {
var self = this;
var need_modal = false;
if (this.many2one) {
var m2o_childrens = this.many2one.getChildren();
need_modal = _.some(m2o_childrens, function (children) {
return 'dialogClass' in children;
});
}
return this._super.apply(this, arguments).then(function () {
if (need_modal) {
self.many2one._searchCreatePopup("form", false, self.many2one._createContext(""));
}
});
},
});
});