From b21b10d1f39152d0feebb0723f750c3283e36fde Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 26 Jul 2013 17:48:16 +0200 Subject: [PATCH] [IMP] website_mail: inherit mail.group to add get_public_message_ids method bzr revid: chm@openerp.com-20130726154816-nl25yxslv6yekoqi --- addons/website_mail/controllers/main.py | 32 +++++++------------ addons/website_mail/mail_message.py | 11 +++++++ addons/website_mail/security/website_mail.xml | 11 ------- addons/website_mail/views/website_mail.xml | 20 +++--------- 4 files changed, 27 insertions(+), 47 deletions(-) diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py index f39c94a5465..806fda76b03 100644 --- a/addons/website_mail/controllers/main.py +++ b/addons/website_mail/controllers/main.py @@ -13,30 +13,20 @@ class website_mail(website): mail_group_obj = request.registry['mail.group'] message_obj = request.registry['mail.message'] - domain = [("subject", "!=", False), ("parent_id", "=", False)] - - if blog_id and not message_obj.search(cr, uid, [("id", "=", blog_id)] + domain): - blog_id = None - else: - blog_domain = [("parent_id", "=", blog_id)] - - domain += [("id", "in", message_obj.search(cr, uid, - mail_group_id and [("res_id", "=", mail_group_id), ("model", "=", 'mail.group')] or [("model", "=", 'mail.group')]))] - values = { 'res_company': request.registry['res.company'].browse(cr, uid, 1), - 'blog_ids': not blog_id and message_obj.browse(cr, uid, - message_obj.search(cr, uid, domain, order="create_date desc", limit=20)) or None, - 'popular_ids': message_obj.browse(cr, uid, - message_obj.search(cr, uid, domain, order="child_ids desc", limit=5)), - 'recent_ids': message_obj.browse(cr, uid, - message_obj.search(cr, uid, domain, order="create_date desc", limit=5)), - 'last_ids': message_obj.browse(cr, uid, - message_obj.search(cr, uid, domain, order="write_date desc", limit=5)), - 'blog_id': blog_id and message_obj.browse(cr, uid, blog_id) or None, - 'blog_message_ids': blog_id and message_obj.browse(cr, uid, - message_obj.search(cr, uid, blog_domain, order="create_date asc", limit=20)) or None, + 'blog_ids': None, + 'blog_id': None, } + if not blog_id: + message_ids = mail_group_obj.get_public_message_ids(cr, uid, domain=mail_group_id and [("res_id", "=", mail_group_id)] or []) + if message_ids: + values['blog_ids'] = message_obj.browse(cr, uid, message_ids) + else: + values['blog_id'] = message_obj.browse(cr, uid, blog_id) + + print values + html = self.render(cr, uid, "website_mail.index", values) return html diff --git a/addons/website_mail/mail_message.py b/addons/website_mail/mail_message.py index 4427af34e9d..cf2b88587ce 100644 --- a/addons/website_mail/mail_message.py +++ b/addons/website_mail/mail_message.py @@ -27,3 +27,14 @@ class mail_message(osv.osv): _columns = { 'website_published': fields.boolean('Publish', help="Publish on the website as a blog"), } + + +class mail_group(osv.Model): + _inherit = 'mail.group' + + def get_public_message_ids(self, cr, uid, domain=[], context=None): + mail_group_ids = self.search(cr, uid, [('public', '=', 'public')], context=context) + domain += [ ("type", "in", ['comment']), + ("parent_id", "=", False), + ("model", "=", 'mail.group'), ("res_id", "in", mail_group_ids)] + return self.pool.get('mail.message').search(cr, uid, domain, context=context) diff --git a/addons/website_mail/security/website_mail.xml b/addons/website_mail/security/website_mail.xml index 10b53673012..057329e7903 100644 --- a/addons/website_mail/security/website_mail.xml +++ b/addons/website_mail/security/website_mail.xml @@ -16,16 +16,5 @@ - - - website_mail: Public post message - - [('website_published', '=', True), ("model", "=", 'mail.group')] - - - - - - diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml index 763ffdfa591..b6a95117e4c 100644 --- a/addons/website_mail/views/website_mail.xml +++ b/addons/website_mail/views/website_mail.xml @@ -30,18 +30,8 @@
@@ -59,7 +49,7 @@
-
+
    - +