From 02792660b8e90cfc20662ffcc2e1ad5c8631e8ac Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Tue, 6 Sep 2011 22:54:38 +0200 Subject: [PATCH] [IMP] factorize view/load part1 bzr revid: al@openerp.com-20110906205438-wk1x6dx2mp103en2 --- addons/web/controllers/main.py | 36 +++++++---------------- addons/web/static/src/js/form.js | 11 +++++-- addons/web/static/src/js/list-editable.js | 2 +- addons/web/static/src/js/list.js | 5 ++-- addons/web/static/src/js/view_tree.js | 1 + 5 files changed, 24 insertions(+), 31 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index d9edee1cfca..5a907fbc8f9 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -884,22 +884,13 @@ class View(openerpweb.Controller): if context_string: elem.set(el, self.parse_context(context_string, session)) -class FormView(View): - _cp_path = "/web/formview" - @openerpweb.jsonrequest - def load(self, req, model, view_id, toolbar=False): - fields_view = self.fields_view_get(req, model, view_id, 'form', toolbar=toolbar) - return {'fields_view': fields_view} + def load(self, req, model, view_id, view_type, toolbar=False): + return self.fields_view_get(req, model, view_id, view_type, toolbar=toolbar) class ListView(View): _cp_path = "/web/listview" - @openerpweb.jsonrequest - def load(self, req, model, view_id, toolbar=False): - fields_view = self.fields_view_get(req, model, view_id, 'tree', toolbar=toolbar) - return {'fields_view': fields_view} - def process_colors(self, view, row, context): colors = view['arch']['attrs'].get('colors') @@ -918,6 +909,15 @@ class ListView(View): return color[0] return 'maroon' +class TreeView(View): + _cp_path = "/web/treeview" + + @openerpweb.jsonrequest + def action(self, req, model, id): + return load_actions_from_ir_values( + req,'action', 'tree_but_open',[(model, id)], + False) + class SearchView(View): _cp_path = "/web/searchview" @@ -1073,19 +1073,6 @@ class Action(openerpweb.Controller): return clean_action(req, req.session.model('ir.actions.server').run( [action_id], req.session.eval_context(req.context))) -class TreeView(View): - _cp_path = "/web/treeview" - - @openerpweb.jsonrequest - def load(self, req, model, view_id, toolbar=False): - return self.fields_view_get(req, model, view_id, 'tree', toolbar=toolbar) - - @openerpweb.jsonrequest - def action(self, req, model, id): - return load_actions_from_ir_values( - req,'action', 'tree_but_open',[(model, id)], - False) - class Export(View): _cp_path = "/web/export" @@ -1336,7 +1323,6 @@ class ExcelExport(Export): fp.close() return data - class Reports(View): _cp_path = "/web/report" diff --git a/addons/web/static/src/js/form.js b/addons/web/static/src/js/form.js index 7057ef6c10a..3b960663670 100644 --- a/addons/web/static/src/js/form.js +++ b/addons/web/static/src/js/form.js @@ -50,8 +50,13 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# return def.promise(); } else { var context = new openerp.web.CompoundContext(this.dataset.get_context()); - return this.rpc("/web/formview/load", {"model": this.model, "view_id": this.view_id, - toolbar: this.options.sidebar, context: context}, this.on_loaded); + return this.rpc("/web/view/load", { + "model": this.model, + "view_id": this.view_id, + "view_type": "form", + toolbar: this.options.sidebar, + context: context + }, this.on_loaded); } }, stop: function() { @@ -65,7 +70,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# }, on_loaded: function(data) { var self = this; - this.fields_view = data.fields_view; + this.fields_view = data; var frame = new (this.registry.get_object('frame'))(this, this.fields_view.arch); this.$element.html(QWeb.render(this.template, { 'frame': frame, 'view': this })); diff --git a/addons/web/static/src/js/list-editable.js b/addons/web/static/src/js/list-editable.js index d7a235f5a32..614c6fa42ef 100644 --- a/addons/web/static/src/js/list-editable.js +++ b/addons/web/static/src/js/list-editable.js @@ -74,7 +74,7 @@ openerp.web.list_editable = function (openerp) { }, on_loaded: function (data, grouped) { // tree/@editable takes priority on everything else if present. - this.options.editable = data.fields_view.arch.attrs.editable || this.options.editable; + this.options.editable = data.arch.attrs.editable || this.options.editable; return this._super(data, grouped); } }); diff --git a/addons/web/static/src/js/list.js b/addons/web/static/src/js/list.js index 1942bac179a..fe38721c520 100644 --- a/addons/web/static/src/js/list.js +++ b/addons/web/static/src/js/list.js @@ -147,7 +147,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# */ on_loaded: function(data, grouped) { var self = this; - this.fields_view = data.fields_view; + this.fields_view = data; //this.log(this.fields_view); this.name = "" + this.fields_view.arch.attrs.string; @@ -218,7 +218,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# if (!this.sidebar && this.options.sidebar && this.options.sidebar_id) { this.sidebar = new openerp.web.Sidebar(this, this.options.sidebar_id); this.sidebar.start(); - this.sidebar.add_toolbar(data.fields_view.toolbar); + this.sidebar.add_toolbar(this.fields_view.toolbar); this.set_common_sidebar_sections(this.sidebar); } }, @@ -373,6 +373,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# return this.rpc('/web/listview/load', { model: this.model, view_id: this.view_id, + "view_type": "list", context: this.dataset.get_context(context), toolbar: this.options.sidebar }, callback); diff --git a/addons/web/static/src/js/view_tree.js b/addons/web/static/src/js/view_tree.js index 6257dc7e587..595288147e1 100644 --- a/addons/web/static/src/js/view_tree.js +++ b/addons/web/static/src/js/view_tree.js @@ -31,6 +31,7 @@ openerp.web.TreeView = openerp.web.View.extend({ return this.rpc("/web/treeview/load", { model: this.model, view_id: this.view_id, + view_type: "tree", toolbar: this.view_manager ? !!this.view_manager.sidebar : false }, this.on_loaded); },