[IMP] mail.thread: added 2 tools method to get number of discussions and number of messages. mail.group: improved kanban view with info (discussions, messages and members count).
bzr revid: tde@openerp.com-20120307172350-kjx16z013bpq4t2z
This commit is contained in:
parent
4031396f47
commit
9dbb8b35b5
|
@ -68,6 +68,24 @@ class mail_group(osv.osv):
|
|||
result[id] = self.message_is_subscriber(cr, uid, [id], context=context)
|
||||
return result
|
||||
|
||||
def get_messages_nbr(self, cr, uid, ids, name, args, context=None):
|
||||
result = {}
|
||||
for id in ids:
|
||||
result[id] = self.message_get_messages_nbr(cr, uid, [id], context=context)
|
||||
return result
|
||||
|
||||
def get_discussions_nbr(self, cr, uid, ids, name, args, context=None):
|
||||
result = {}
|
||||
for id in ids:
|
||||
result[id] = self.message_get_discussions_nbr(cr, uid, [id], context=context)
|
||||
return result
|
||||
|
||||
def get_members_nbr(self, cr, uid, ids, name, args, context=None):
|
||||
result = {}
|
||||
for id in ids:
|
||||
result[id] = len(self._message_get_subscribers_ids(cr, uid, [id], context=context))
|
||||
return result
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True),
|
||||
'description': fields.text('Description'),
|
||||
|
@ -79,7 +97,10 @@ class mail_group(osv.osv):
|
|||
store = {
|
||||
'mail.group': (lambda self, cr, uid, ids, c={}: ids, ['photo'], 10),
|
||||
}),
|
||||
'joined': fields.function(is_subscriber, type='boolean'),
|
||||
'joined': fields.function(is_subscriber, type='boolean', string='Joined'),
|
||||
'messages_nbr': fields.function(get_messages_nbr, type='integer', string='Messages count'),
|
||||
'discussions_nbr': fields.function(get_discussions_nbr, type='integer', string='Discussions count'),
|
||||
'members_nbr': fields.function(get_members_nbr, type='integer', string='Members count'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
|
|
@ -25,9 +25,11 @@
|
|||
<h4><a type="edit"><field name="name"/></a></h4>
|
||||
<span style="display: none;"><field name="joined"/></span>
|
||||
<ul>
|
||||
<li><field name="members_nbr"/> members</li>
|
||||
<li t-if="record.joined.raw_value"><b>Joined</b></li>
|
||||
<li t-if="! record.joined.raw_value"><a name="action_group_join" string="Join" type="object">Join</a></li>
|
||||
<li t-if="record.joined.raw_value"><a name="action_group_leave" string="Join" type="object">Leave</a></li>
|
||||
<li><field name="messages_nbr"/> messages in <field name="discussions_nbr"/> discussions</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -326,6 +326,21 @@ class mail_thread(osv.osv):
|
|||
msgs = message_obj.read(cr, uid, msg_ids, context=context)
|
||||
return msgs
|
||||
|
||||
# Message tools
|
||||
def message_get_discussions_nbr(self, cr, uid, ids, context=None):
|
||||
count = 0
|
||||
message_obj = self.pool.get('mail.message')
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
count += message_obj.search(cr, uid, [('model', '=', self._name), ('res_id', '=', obj.id)], count=True) # TODO: add parent_id when merging branch
|
||||
return count
|
||||
|
||||
def message_get_messages_nbr(self, cr, uid, ids, context=None):
|
||||
count = 0
|
||||
message_obj = self.pool.get('mail.message')
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
count += message_obj.search(cr, uid, [('model', '=', self._name), ('res_id', '=', obj.id)], count=True)
|
||||
return count
|
||||
|
||||
#------------------------------------------------------
|
||||
# Email specific
|
||||
#------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue