[FIX] [REF] mail.group: refactored a bit the code about res.groups management and mail.group user update.
bzr revid: tde@openerp.com-20120719123439-81glrece7xm615ii
This commit is contained in:
parent
cf54256757
commit
41fdcaf994
|
@ -145,25 +145,28 @@ class mail_group(osv.osv):
|
||||||
'photo': _get_default_photo,
|
'photo': _get_default_photo,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def _subscribe_user_with_group_m2m_command(self, cr, uid, ids, group_ids_command, context=None):
|
||||||
|
print group_ids_command
|
||||||
|
# form: {'group_ids': [(3, 10), (3, 3), (4, 10), (4, 3)]} or {'group_ids': [(6, 0, [ids]}
|
||||||
|
user_group_ids = [command[1] for command in group_ids_command if command[0] == 4]
|
||||||
|
user_group_ids += [id for command in group_ids_command if command[0] == 6 for id in command[2]]
|
||||||
|
# retrieve the user member of those groups
|
||||||
|
user_ids = []
|
||||||
|
res_groups_obj = self.pool.get('res.groups')
|
||||||
|
for group in res_groups_obj.browse(cr, uid, user_group_ids, context=context):
|
||||||
|
user_ids += [user.id for user in group.users]
|
||||||
|
# subscribe the users
|
||||||
|
return self.message_subscribe(cr, uid, ids, user_ids, context=context)
|
||||||
|
|
||||||
def create(self, cr, uid, vals, context=None):
|
def create(self, cr, uid, vals, context=None):
|
||||||
mail_group_id = super(mail_group, self).create(cr, uid, vals, context=context)
|
mail_group_id = super(mail_group, self).create(cr, uid, vals, context=context)
|
||||||
if vals.get('group_ids'):
|
if vals.get('group_ids'):
|
||||||
user_goup_ids = vals.get('group_ids')[0][2]
|
self._subscribe_user_with_group_m2m_command(cr, uid, [mail_group_id], vals.get('group_ids'), context=context)
|
||||||
res_groups_obj = self.pool.get('res.groups')
|
|
||||||
user_ids = []
|
|
||||||
for group in res_groups_obj.browse(cr, uid, user_goup_ids, context=None):
|
|
||||||
user_ids += [user.id for user in group.users]
|
|
||||||
self.message_subscribe(cr, uid, [mail_group_id], user_ids, context=context)
|
|
||||||
return mail_group_id
|
return mail_group_id
|
||||||
|
|
||||||
def write(self, cr, uid, ids, vals, context=None):
|
def write(self, cr, uid, ids, vals, context=None):
|
||||||
if vals.get('group_ids'):
|
if vals.get('group_ids'):
|
||||||
user_goup_ids = vals.get('group_ids')[0][2]
|
self._subscribe_user_with_group_m2m_command(cr, uid, ids, vals.get('group_ids'), context=context)
|
||||||
res_groups_obj = self.pool.get('res.groups')
|
|
||||||
user_ids = []
|
|
||||||
for group in res_groups_obj.browse(cr, uid, user_goup_ids, context=None):
|
|
||||||
user_ids += [user.id for user in group.users]
|
|
||||||
self.message_subscribe(cr, uid, ids, user_ids, context=context)
|
|
||||||
return super(mail_group, self).write(cr, uid, ids, vals, context=context)
|
return super(mail_group, self).write(cr, uid, ids, vals, context=context)
|
||||||
|
|
||||||
def action_group_join(self, cr, uid, ids, context=None):
|
def action_group_join(self, cr, uid, ids, context=None):
|
||||||
|
|
|
@ -93,8 +93,9 @@ class res_users_mail_group(osv.osv):
|
||||||
def write(self, cr, uid, ids, vals, context=None):
|
def write(self, cr, uid, ids, vals, context=None):
|
||||||
write_res = super(res_users_mail_group, self).write(cr, uid, ids, vals, context=context)
|
write_res = super(res_users_mail_group, self).write(cr, uid, ids, vals, context=context)
|
||||||
if vals.get('groups_id'):
|
if vals.get('groups_id'):
|
||||||
# form: {'groups_id': [(3, 10), (3, 3), (4, 10), (4, 3)]}
|
# form: {'group_ids': [(3, 10), (3, 3), (4, 10), (4, 3)]} or {'group_ids': [(6, 0, [ids]}
|
||||||
user_group_ids = [command[1] for command in vals['groups_id'] if command[0] == 4]
|
user_group_ids = [command[1] for command in vals['groups_id'] if command[0] == 4]
|
||||||
|
user_group_ids += [id for command in vals['groups_id'] if command[0] == 6 for id in command[2]]
|
||||||
mail_group_obj = self.pool.get('mail.group')
|
mail_group_obj = self.pool.get('mail.group')
|
||||||
mail_group_ids = mail_group_obj.search(cr, uid, [('group_ids', 'in', user_group_ids)], context=context)
|
mail_group_ids = mail_group_obj.search(cr, uid, [('group_ids', 'in', user_group_ids)], context=context)
|
||||||
mail_group_obj.message_subscribe(cr, uid, mail_group_ids, ids, context=context)
|
mail_group_obj.message_subscribe(cr, uid, mail_group_ids, ids, context=context)
|
||||||
|
@ -112,8 +113,9 @@ class res_groups_mail_group(osv.osv):
|
||||||
|
|
||||||
def write(self, cr, uid, ids, vals, context=None):
|
def write(self, cr, uid, ids, vals, context=None):
|
||||||
if vals.get('users'):
|
if vals.get('users'):
|
||||||
# form: {'users': [(6, 0, [ids]}
|
# form: {'group_ids': [(3, 10), (3, 3), (4, 10), (4, 3)]} or {'group_ids': [(6, 0, [ids]}
|
||||||
user_ids = vals['users'][0][2]
|
user_ids = [command[1] for command in vals['users'] if command[0] == 4]
|
||||||
|
user_ids += [id for command in vals['users'] if command[0] == 6 for id in command[2]]
|
||||||
mail_group_obj = self.pool.get('mail.group')
|
mail_group_obj = self.pool.get('mail.group')
|
||||||
mail_group_ids = mail_group_obj.search(cr, uid, [('group_ids', 'in', ids)], context=context)
|
mail_group_ids = mail_group_obj.search(cr, uid, [('group_ids', 'in', ids)], context=context)
|
||||||
mail_group_obj.message_subscribe(cr, uid, mail_group_ids, user_ids, context=context)
|
mail_group_obj.message_subscribe(cr, uid, mail_group_ids, user_ids, context=context)
|
||||||
|
|
Loading…
Reference in New Issue