diff --git a/res_partner_company_messages/README.rst b/res_partner_company_messages/README.rst new file mode 100644 index 0000000..b287290 --- /dev/null +++ b/res_partner_company_messages/README.rst @@ -0,0 +1,6 @@ +Aggregate messages from company's contacts +========================================== + +By default, odoo displays under partner form only its own messages. The module shows under company form both their own messages and the messages of any contacts attached to that company. + +Tested on Odoo 8.0 ea60fed97af1c139e4647890bf8f68224ea1665b diff --git a/res_partner_company_messages/__init__.py b/res_partner_company_messages/__init__.py new file mode 100644 index 0000000..bff786c --- /dev/null +++ b/res_partner_company_messages/__init__.py @@ -0,0 +1 @@ +import models diff --git a/res_partner_company_messages/__openerp__.py b/res_partner_company_messages/__openerp__.py new file mode 100644 index 0000000..17a5b11 --- /dev/null +++ b/res_partner_company_messages/__openerp__.py @@ -0,0 +1,13 @@ +{ + 'name': "Aggregate messages from company's contacts", + 'version': '1.0.0', + 'author': 'Ivan Yelizariev', + 'category': 'Custom', + 'website': 'https://yelizariev.github.io', + 'images': ['images/parent.png', 'images/child.png'], + 'depends': ['mail'], + 'data': [ + 'views.xml', + ], + 'installable': True +} diff --git a/res_partner_company_messages/images/child.png b/res_partner_company_messages/images/child.png new file mode 100644 index 0000000..6b1d422 Binary files /dev/null and b/res_partner_company_messages/images/child.png differ diff --git a/res_partner_company_messages/images/parent.png b/res_partner_company_messages/images/parent.png new file mode 100644 index 0000000..825d130 Binary files /dev/null and b/res_partner_company_messages/images/parent.png differ diff --git a/res_partner_company_messages/models.py b/res_partner_company_messages/models.py new file mode 100644 index 0000000..5903a99 --- /dev/null +++ b/res_partner_company_messages/models.py @@ -0,0 +1,15 @@ +from openerp import api, models, fields, SUPERUSER_ID + +class mail_message(models.Model): + _inherit = 'mail.message' + + @api.cr_uid_context + def message_read(self, cr, uid, ids=None, domain=None, message_unload_ids=None, + thread_level=0, context=None, parent_id=False, limit=None): + if context and context.get('default_model') == 'res.partner': + partner = self.pool['res.partner'].browse(cr, uid, context.get('default_res_id')) + domain_by_id = domain and len(domain) == 1 and domain[0][0] == 'id' and domain[0][1] == '=' + if partner.is_company and not domain_by_id: + ids = None + domain = [('model', '=', 'res.partner'), ('res_id', 'in', [partner.id]+partner.child_ids.ids)] + return super(mail_message, self).message_read(cr, uid, ids, domain, message_unload_ids, thread_level, context, parent_id, limit) diff --git a/res_partner_company_messages/views.xml b/res_partner_company_messages/views.xml new file mode 100644 index 0000000..379a868 --- /dev/null +++ b/res_partner_company_messages/views.xml @@ -0,0 +1,3 @@ + + +