'child_ids': [],
}
- def _debug_print_tree(self, tree, prefix=''):
- for elem in tree:
- print '%s%s' % (prefix, elem['id'])
- if elem['child_ids']:
- self._debug_print_tree(elem['child_ids'], prefix+'-')
-
def message_read(self, cr, uid, ids=False, domain=[], thread_level=0, limit=None, context=None):
"""
If IDS are provided, fetch these records, otherwise use the domain to
record_parent = tree[msg.parent_id.id]
else:
record_parent = self._message_dict_get(cr, uid, msg.parent_id, context=context)
- if msg.parent_id.parent_id and msg.parent_id.id not in tree:
+ if msg.parent_id.parent_id:
tree[msg.parent_id.id] = record_parent
- record_parent['child_ids'].append(record)
+ if record['id'] not in [x['id'] for x in record_parent['child_ids']]:
+ record_parent['child_ids'].append(record)
record = record_parent
msg = msg.parent_id
if msg.id not in tree:
'thread_level': thread_level # should be improve accodting to level of records
})
break
- # TDE temp: debug print
- # self._debug_print_tree(result)
return result
def set_message_read(self, cr, uid, msg_id, context=None):
partner_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).partner_id.id
notif_ids = self.search(cr, uid, [('partner_id', '=', partner_id), ('message_id', '=', msg_id)], context=context)
- return self.write(cr, uid, notif_ids, {'read': True})
+ return self.write(cr, uid, notif_ids, {'read': True}, context=context)
# Second try: read with thread_level 1
res = self.mail_message.message_read(cr, uid, ids=False, domain=[('model', '=', 'mail.group'), ('res_id', '=', self.group_pigs_id)], thread_level=1)
- # print res
+ # print '----'
+ # self.mail_message._debug_print_tree(res)
+ # print '----'
+
self.assertTrue(len(res) == 2, 'Incorrect number of child in message_read')
self.assertTrue(len(res[0]['child_ids']) == 2, 'Incorrect number of child in message_read')
self.assertTrue(len(res[0]['child_ids'][0]['child_ids']) == 1, 'Incorrect number of child in message_read')
# trees = self.mail_message.message_read_tree_flatten_main(cr, uid, res, thread_level=0)
- # print trees
+ # print '----'
+ # self.mail_message._debug_print_tree(trees)
+ # print '----'
+
+ res = self.mail_message.message_read(cr, uid, ids=False, domain=[('model', '=', 'mail.group'), ('res_id', '=', self.group_pigs_id)], thread_level=1)
+ # trees = self.mail_message.message_read_tree_flatten_main(cr, uid, res, thread_level=1)
+ # print '----'
+ # self.mail_message._debug_print_tree(trees)
+ # print '----'
+
+ self.assertTrue(len(res) == 3, 'Incorrect number of child in message_read')
def test_40_needaction(self):
""" Tests for mail.message needaction. """