From 6d70b97425e26bd6f17697baaf24dd7f4c432129 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 16 May 2012 12:16:34 +0200 Subject: [PATCH] [imp] small modif to view manager for future refactoring bzr revid: nicolas.vanhoren@openerp.com-20120516101634-bjne7hl4twvrfoy3 --- addons/web/static/src/js/view_form.js | 26 +++++++++++++++++--------- addons/web/static/src/js/views.js | 5 ++++- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 3c45e28e28f..f4820f3bd24 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2766,15 +2766,8 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ }); this.views = views; - this.viewmanager = new instance.web.ViewManager(this, this.dataset, views, { - $sidebar: false, - }); - this.viewmanager.template = 'One2Many.viewmanager'; - this.viewmanager.registry = instance.web.views.extend({ - list: 'instance.web.form.One2ManyListView', - form: 'instance.web.form.One2ManyFormView', - kanban: 'instance.web.form.One2ManyKanbanView', - }); + this.viewmanager = new instance.web.form.One2ManyViewManager(this, this.dataset, views, {}); + this.viewmanager.o2m = self; var once = $.Deferred().then(function() { self.init_form_last_update.resolve(); }); @@ -2958,6 +2951,21 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ }, }); +instance.web.form.One2ManyViewManager = instance.web.ViewManager.extend({ + template: 'One2Many.viewmanager', + init: function(parent, dataset, views, flags) { + this._super(parent, dataset, views, _.extend({}, flags, {$sidebar: false})); + this.registry = this.registry.extend({ + list: 'instance.web.form.One2ManyListView', + form: 'instance.web.form.One2ManyFormView', + kanban: 'instance.web.form.One2ManyKanbanView', + }); + }, + switch_view: function(mode, unused) { + return this._super(mode, unused); + }, +}); + instance.web.form.One2ManyDataSet = instance.web.BufferedDataSet.extend({ get_context: function() { this.context = this.o2m.build_context([this.o2m.name]); diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index de2ff53a71a..fae16dbd88f 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -295,7 +295,7 @@ instance.web.ViewManager = instance.web.Widget.extend({ if (view.embedded_view) { controller.set_embedded_view(view.embedded_view); } - controller.do_switch_view.add_last(this.on_mode_switch); + controller.do_switch_view.add_last(_.bind(this.switch_view, this)); controller.do_prev_view.add_last(this.on_prev_view); var container = this.$element.find(".oe_view_manager_view_" + view_type); view_promise = controller.appendTo(container); @@ -342,6 +342,9 @@ instance.web.ViewManager = instance.web.Widget.extend({ }); return view_promise; }, + switch_view: function(view_type, no_store) { + return this.on_mode_switch(view_type, no_store); + }, /** * Returns to the view preceding the caller view in this manager's * navigation history (the navigation history is appended to via