[CLEAN] mail_group_menu: cleaned file, added some doc.
bzr revid: tde@openerp.com-20120814121202-zuhu88g95p78ggdc
This commit is contained in:
parent
19abc35ce6
commit
89e404301b
|
@ -2,7 +2,7 @@
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
# OpenERP, Open Source Management Solution
|
# OpenERP, Open Source Management Solution
|
||||||
# Copyright (C) 2010-today OpenERP SA (<http://www.openerp.com>)
|
# Copyright (C) 2012-today OpenERP SA (<http://www.openerp.com>)
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
@ -24,21 +24,29 @@ from osv import fields
|
||||||
from tools.translate import _
|
from tools.translate import _
|
||||||
|
|
||||||
class ir_ui_menu(osv.osv):
|
class ir_ui_menu(osv.osv):
|
||||||
|
""" Override of ir.ui.menu class. When adding mail_thread module, each
|
||||||
|
new mail.group will create a menu entry. This overrides checks that
|
||||||
|
the current user is in the mail.group followers. If not, the menu
|
||||||
|
entry is taken off the list of menu ids. This way the user will see
|
||||||
|
menu entries for the mail.group he is following.
|
||||||
|
"""
|
||||||
_inherit = 'ir.ui.menu'
|
_inherit = 'ir.ui.menu'
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'mail_group_id': fields.many2one('mail.group', 'Mail Group')
|
'mail_group_id': fields.many2one('mail.group', 'Mail Group')
|
||||||
}
|
}
|
||||||
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
|
|
||||||
ids = super(ir_ui_menu, self).search(cr, uid, args, offset=0, limit=None, order=order, context=context, count=False)
|
|
||||||
|
|
||||||
subs = self.pool.get('mail.subscription')
|
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
|
||||||
|
""" Override to take off menu entries (mail.group) the user is not
|
||||||
|
following. """
|
||||||
|
ids = super(ir_ui_menu, self).search(cr, uid, args, offset=0, limit=None, order=order, context=context, count=False)
|
||||||
|
follower_obj = self.pool.get('mail.followers')
|
||||||
for menu in self.browse(cr, uid, ids, context=context):
|
for menu in self.browse(cr, uid, ids, context=context):
|
||||||
if menu.mail_group_id:
|
if menu.mail_group_id:
|
||||||
sub_ids = subs.search(cr, uid, [
|
sub_ids = follower_obj.search(cr, uid, [
|
||||||
('user_id','=',uid),('res_model','=','mail.group'),
|
('user_id', '=', uid), ('res_model', '=', 'mail.group'),
|
||||||
('res_id','=',menu.mail_group_id.id)
|
('res_id', '=', menu.mail_group_id.id)
|
||||||
], context=context)
|
], context=context)
|
||||||
if not sub_ids:
|
if not sub_ids:
|
||||||
ids.remove(menu.id)
|
ids.remove(menu.id)
|
||||||
return ids
|
return ids
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue