From dac344cf3115e6e872809c5c03d3ff07968df6e5 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 1 Jun 2011 15:45:14 +0200 Subject: [PATCH] [ADD] Add custom views management (add, undo) in View controller bzr revid: fme@openerp.com-20110601134514-dv91qpjl50ptf161 --- addons/base/controllers/main.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 35289e487af..94eb05f7d6c 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -456,6 +456,8 @@ class DataGroup(openerpweb.Controller): dict(request.context, group_by=group_by_fields)) class View(openerpweb.Controller): + _cp_path = "/base/view" + def fields_view_get(self, request, model, view_id, view_type, transform=True, toolbar=False, submenu=False): Model = request.session.model(model) @@ -471,6 +473,25 @@ class View(openerpweb.Controller): fvg['arch'] = Xml2Json.convert_element(xml) return fvg + @openerpweb.jsonrequest + def add_custom(self, request, view_id, arch): + CustomView = request.session.model('ir.ui.view.custom') + CustomView.create({ + 'user_id': request.session._uid, + 'ref_id': view_id, + 'arch': arch + }) + return {'result': True} + + @openerpweb.jsonrequest + def undo_custom(self, request, view_id): + CustomView = request.session.model('ir.ui.view.custom') + vcustom = CustomView.search([('user_id', '=', request.session._uid), ('ref_id' ,'=', view_id)]) + if vcustom: + CustomView.unlink([vcustom[0]]) + return {'result': True} + return {'result': False} + def normalize_attrs(self, elem, context): """ Normalize @attrs, @invisible, @required, @readonly and @states, so the client only has to deal with @attrs.