From f434470e88096fcc841400a31951999e2d6ad9de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20D=2E=20D=C3=ADaz?= Date: Tue, 15 Dec 2020 19:46:03 +0100 Subject: [PATCH] [FIX] web_widget_many2many_tags_multi_selection: Correct handle of 'Save & New' --- .../README.rst | 1 + .../readme/CONTRIBUTORS.rst | 1 + .../static/description/index.html | 1 + .../static/src/js/view_form.js | 29 +++++++++++++++++++ 4 files changed, 32 insertions(+) diff --git a/web_widget_many2many_tags_multi_selection/README.rst b/web_widget_many2many_tags_multi_selection/README.rst index 9dbcd3621..7d70cec5e 100644 --- a/web_widget_many2many_tags_multi_selection/README.rst +++ b/web_widget_many2many_tags_multi_selection/README.rst @@ -60,6 +60,7 @@ Contributors * Jamin Shah * Maxence Groine * Anand Kansagra +* Alexandre D. Díaz Maintainers ~~~~~~~~~~~ diff --git a/web_widget_many2many_tags_multi_selection/readme/CONTRIBUTORS.rst b/web_widget_many2many_tags_multi_selection/readme/CONTRIBUTORS.rst index 2ea4b2d7d..ae38e5e7b 100644 --- a/web_widget_many2many_tags_multi_selection/readme/CONTRIBUTORS.rst +++ b/web_widget_many2many_tags_multi_selection/readme/CONTRIBUTORS.rst @@ -2,3 +2,4 @@ * Jamin Shah * Maxence Groine * Anand Kansagra +* Alexandre D. Díaz diff --git a/web_widget_many2many_tags_multi_selection/static/description/index.html b/web_widget_many2many_tags_multi_selection/static/description/index.html index 0d378bedb..9bd165a64 100644 --- a/web_widget_many2many_tags_multi_selection/static/description/index.html +++ b/web_widget_many2many_tags_multi_selection/static/description/index.html @@ -406,6 +406,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
  • Jamin Shah <jaiminshah2009@gmail.com>
  • Maxence Groine <mgroine@fiefmanage.ch>
  • Anand Kansagra <kansagraanand@hotmail.com>
  • +
  • Alexandre D. Díaz <alexandre.diaz@tecnativa.com>
  • diff --git a/web_widget_many2many_tags_multi_selection/static/src/js/view_form.js b/web_widget_many2many_tags_multi_selection/static/src/js/view_form.js index 65c1db5dd..95add1e4b 100644 --- a/web_widget_many2many_tags_multi_selection/static/src/js/view_form.js +++ b/web_widget_many2many_tags_multi_selection/static/src/js/view_form.js @@ -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("")); + } + }); + }, + }); });