[IMP] website_mail: inherit mail.group to add get_public_message_ids method
bzr revid: chm@openerp.com-20130726154816-nl25yxslv6yekoqi
This commit is contained in:
parent
89178695f9
commit
b21b10d1f3
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -16,16 +16,5 @@
|
|||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record id="website_mail_public_post" model="ir.rule">
|
||||
<field name="name">website_mail: Public post message</field>
|
||||
<field name="model_id" ref="model_mail_message"/>
|
||||
<field name="domain_force">[('website_published', '=', True), ("model", "=", 'mail.group')]</field>
|
||||
<field name="groups" eval="[(4, ref('group_website_mail_reply'))]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
<field name="perm_unlink" eval="False"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -30,18 +30,8 @@
|
|||
<div class="row">
|
||||
<div class="span4">
|
||||
<ul class="nav nav-list">
|
||||
<li class="nav-header">Most Popular</li>
|
||||
<t t-foreach="popular_ids or []" t-as="blog">
|
||||
<li><a t-att-href="'/blog/%%s/%%s' %% (blog.res_id, blog.id)"><t t-esc="blog.subject"/> </a></li>
|
||||
</t>
|
||||
<li class="nav-header">Recent</li>
|
||||
<t t-foreach="recent_ids or []" t-as="blog">
|
||||
<li><a t-att-href="'/blog/%%s/%%s' %% (blog.res_id, blog.id)"><t t-esc="blog.subject"/> </a></li>
|
||||
</t>
|
||||
<li class="nav-header">Last Commit</li>
|
||||
<t t-foreach="last_ids or []" t-as="blog">
|
||||
<li><a t-att-href="'/blog/%%s/%%s' %% (blog.res_id, blog.id)"><t t-esc="blog.subject"/> </a></li>
|
||||
</t>
|
||||
<li class="nav-header">BLOG ARCHIVE</li>
|
||||
<li><a t-att-href="'/blog/%%s/%%s' %% (blog_id.res_id, blog_id.id)"><t t-esc="blog_id.subject"/> </a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="span8" t-if="blog_id">
|
||||
|
@ -59,7 +49,7 @@
|
|||
</small>
|
||||
</div>
|
||||
<ul class="media-list">
|
||||
<t t-foreach="blog_message_ids or []" t-as="mail">
|
||||
<t t-foreach="blog_id.child_ids" t-as="mail">
|
||||
<li class="media well well-small">
|
||||
<div t-att-class="'media-body %%s' %% (mail.website_published and 'css_published' or '')">
|
||||
<a href="#" title="Click to publish or unpublish this message" t-att-data-id="mail.id" class="js_publish css_button_publish" groups="group_website_mail_manager">
|
||||
|
@ -105,9 +95,9 @@
|
|||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="span8" t-if="not blog_id">
|
||||
<div class="span8" t-if="blog_ids">
|
||||
<ul class="media-list">
|
||||
<t t-foreach="blog_ids or []" t-as="blog">
|
||||
<t t-foreach="blog_ids" t-as="blog">
|
||||
<li class="media well">
|
||||
<div class="media-body">
|
||||
<h4 class="media-heading"><t t-esc="blog.subject"/></h4>
|
||||
|
|
Loading…
Reference in New Issue