[FIX] Application Tiles now heed the custom menu domain, just like the nain menu

This makes both behaviors consistent
and allows the portal module to work
properly.

bzr revid: odo@openerp.com-20120209141339-c2vs0lrx7ws6plzs
This commit is contained in:
Olivier Dony 2012-02-09 15:13:39 +01:00
parent af15e1d83e
commit affdaf2566
2 changed files with 30 additions and 18 deletions

View File

@ -680,13 +680,17 @@ class Menu(openerpweb.Controller):
def load(self, req):
return {'data': self.do_load(req)}
def do_load(self, req):
""" Loads all menu items (all applications and their sub-menus).
@openerpweb.jsonrequest
def get_user_roots(self, req):
return self.do_get_user_roots(req)
def do_get_user_roots(self, req):
""" Return all root menu ids visible for the session user.
:param req: A request object, with an OpenERP session attribute
:type req: < session -> OpenERPSession >
:return: the menu root
:rtype: dict('children': menu_nodes)
:return: the root menu ids
:rtype: list(int)
"""
s = req.session
context = s.eval_context(req.context)
@ -698,8 +702,20 @@ class Menu(openerpweb.Controller):
menu_domain = ast.literal_eval(menu_domain)
else:
menu_domain = [('parent_id', '=', False)]
root_menu_ids = Menus.search(menu_domain, 0, False, False, context)
menu_roots = Menus.read(root_menu_ids, ['name', 'sequence', 'parent_id'], context)
return Menus.search(menu_domain, 0, False, False, context)
def do_load(self, req):
""" Loads all menu items (all applications and their sub-menus).
:param req: A request object, with an OpenERP session attribute
:type req: < session -> OpenERPSession >
:return: the menu root
:rtype: dict('children': menu_nodes)
"""
context = req.session.eval_context(req.context)
Menus = req.session.model('ir.ui.menu')
menu_roots = Menus.read(self.do_get_user_roots(req), ['name', 'sequence', 'parent_id'], context)
menu_root = {'id': False, 'name': 'root', 'parent_id': [-1, ''], 'children' : menu_roots}
# menus are loaded fully unlike a regular tree view, cause there are a

View File

@ -419,18 +419,14 @@ openerp.web_dashboard.ApplicationTiles = openerp.web.OldWidget.extend({
},
on_installed_database: function() {
var self = this;
var ds = new openerp.web.DataSetSearch(this, 'ir.ui.menu', null, [['parent_id', '=', false]]);
var r = ds.read_slice( ['name', 'web_icon_data', 'web_icon_hover_data', 'module']).then(function (applications) {
//// Create a matrix of 3*x applications
//var rows = [];
//while (applications.length) {
// rows.push(applications.splice(0, 3));
//}
//var tiles = QWeb.render('ApplicationTiles.content', {rows: rows});
var tiles = QWeb.render('ApplicationTiles.content', {applications: applications});
$(tiles).appendTo(self.$element).find('.oe_install-module-link').click(function () {
openerp.webclient.menu.on_menu_click(null, $(this).data('menu'))
});
self.rpc('/web/menu/get_user_roots', {}).then(function (menu_ids) {
var menuds = new openerp.web.DataSet(this, 'ir.ui.menu',{})
.read_ids(menu_ids, ['name', 'web_icon_data', 'web_icon_hover_data', 'module']).then(function (applications) {
var tiles = QWeb.render('ApplicationTiles.content', {applications: applications});
$(tiles).appendTo(self.$element).find('.oe_install-module-link').click(function () {
openerp.webclient.menu.on_menu_click(null, $(this).data('menu'))
});
});
});
}
});