From f3b46459f3b5304587fad29ab167752fee278df0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Tue, 19 May 2015 15:08:20 +0200 Subject: [PATCH] [REVERT] web: form_relational_widget: remove unused javascript code This reverts commit 6c0376e93263ef8d9df80e464fd9c76dc49a6e94. It turns out that this javascript code was not unused after all. (see kanban view inside customers, clicking on them should open the contact in a popup) --- .../src/js/views/form_relational_widgets.js | 51 ++++++++++++++++++- addons/web/static/src/xml/base.xml | 5 ++ 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/views/form_relational_widgets.js b/addons/web/static/src/js/views/form_relational_widgets.js index b8d0e33425d..cc326907f1a 100644 --- a/addons/web/static/src/js/views/form_relational_widgets.js +++ b/addons/web/static/src/js/views/form_relational_widgets.js @@ -1136,6 +1136,24 @@ var One2ManyList = AddAnItemList.extend({ }, }); +var One2ManyFormView = FormView.extend({ + form_template: 'One2Many.formview', + load_form: function(data) { + this._super(data); + var self = this; + this.$buttons.find('button.oe_form_button_create').click(function() { + self.save().done(self.on_button_new); + }); + }, + do_notify_change: function() { + if (this.dataset.parent_view) { + this.dataset.parent_view.do_notify_change(); + } else { + this._super.apply(this, arguments); + } + } +}); + var One2ManyViewManager = ViewManager.extend({ init: function(parent, dataset, views, flags) { // By default, render buttons and pager in O2M fields, but no sidebar @@ -1150,7 +1168,8 @@ var One2ManyViewManager = ViewManager.extend({ this.set_cp_bus(this.control_panel.get_bus()); this._super(parent, dataset, views, flags); this.registry = core.view_registry.extend({ - 'list': One2ManyListView + list: One2ManyListView, + form: One2ManyFormView, }); this.__ignore_blur = false; }, @@ -1158,6 +1177,36 @@ var One2ManyViewManager = ViewManager.extend({ this.control_panel.prependTo(this.$el); return this._super(); }, + switch_mode: function(mode, unused) { + if (mode !== 'form') { + return this._super(mode, unused); + } + var self = this; + var id = self.o2m.dataset.index !== null ? self.o2m.dataset.ids[self.o2m.dataset.index] : null; + var pop = new common.FormOpenPopup(this); + pop.show_element(self.o2m.field.relation, id, self.o2m.build_context(), { + title: _t("Open: ") + self.o2m.string, + create_function: function(data, options) { + return self.o2m.data_create(data, options); + }, + write_function: function(id, data, options) { + return self.o2m.data_update(id, data, {}).done(function() { + self.o2m.reload_current_view(); + }); + }, + alternative_form_view: self.o2m.field.views ? self.o2m.field.views.form : undefined, + parent_view: self.o2m.view, + child_name: self.o2m.name, + read_function: function(ids, fields, options) { + return self.o2m.data_read(ids, fields, options); + }, + form_view_options: {'not_interactible_on_create':true}, + readonly: self.o2m.get("effective_readonly") + }); + pop.on("elements_selected", self, function() { + self.o2m.reload_current_view(); + }); + }, }); var FieldMany2ManyTags = AbstractManyField.extend(common.CompletionFieldMixin, common.ReinitializeFieldMixin, { diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index e0044346686..7bc79aec9ea 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1573,6 +1573,11 @@ + + + + + this.removeAttr('t-if');