Odoo - Open chatter integration

Post on 09-May-2015

3,263 views 3 download

transcript

OpenChatter IntegrationThibault Delavallée, R&D Engineer

Messaging, OpenChatter

Transversal app

Discuss with customers on

quotations

Feedback on issues

Mailing groups

Discussions on tasks

Subscribe to Newsletters

·

·

·

·

·

Thibault Delavallée (tde@odoo.com)

Messaging, OpenChatter

Transversal features

OpenChatter

Communication history

Subscribe, Followers

Action counters

Mail gateway

Aliases

·

·

·

·

·

·

Thibault Delavallée (tde@odoo.com)

Demo

OpenChatter / mail.thread

OpenChatter in your model:

classclass MyClass((Model):): _inherit == 'mail.thread'

OpenChatter in your view

<div<div class="oe_chatter">> <field<field name="message_follower_ids" widget="mail_followers"/>/> <field<field name="message_ids" widget="mail_thread"/>/></div></div>

And you are done !

Thibault Delavallée (tde@odoo.com)

OpenChatter / mail.thread

Thibault Delavallée (tde@odoo.com)

OpenChatter / mail.thread

What did it do ? new fields, linking messaging models

_columns == {{ 'message_ids':: ...... # communication history 'message_follower_ids':: ...... # followers 'message_unread':: ...... # unread messages}}

MyClasss MailMessage((Model):): ......

classclass MailMail((Model):): ......

classclass MailFollowers((Model):): ......

Thibault Delavallée (tde@odoo.com)

OpenChatter / mail.thread

What did it do ? new features

defdef message_post((......):):

defdef message_track((......):):

defdef message_subscribe((......):):

defdef message_process((......):):

Thibault Delavallée (tde@odoo.com)

Subtypes

Subscription customization

Automatic logging

Thibault Delavallée (tde@odoo.com)

Subtypes

Define subtypes in XML

<record<record id="mt_task_assigned" model="mail.message.subtype">> <field<field name="name">>Task Assigned</field></field> <field<field name="res_model">>project.task</field></field> <field<field name="default" eval="False"/>/></record></record>

Thibault Delavallée (tde@odoo.com)

Subtypes

Bind them to the model

_columns == {{ 'user_id':: fields..many2one(('res.users',, track_visibility=='onchange'),),}}

_track == {{ 'user_id':: {{ 'project.mt_task_assigned':: lambdalambda self,, cr,, uid,, obj,, c==None:: obj..user_id andand obj..user_id..id,, }}}}

Thibault Delavallée (tde@odoo.com)

NeedAction

NeedAction in your model:

classclass MyClass((Model):): _inherit == 'ir.needaction_mixin'

Define a standard message_unread search filter

<filter<filter string="Unread Messagingges" name="message_unread" domain="[('message_unread','=',True)]" help="Unread messages"/>/>

Thibault Delavallée (tde@odoo.com)

NeedAction

Action counters

Kanban

Thibault Delavallée (tde@odoo.com)

Email aliases

Add alias management in your model:

classclass MyClass((Model):): _inherits == {{'mail.alias':: 'alias_id'}}

_columns == {{ 'alias_id':: fields..many2one(('mail.alias',, 'Alias'),), }}

New record -> new alias

Thibault Delavallée (tde@odoo.com)

Aliases and Mail Gateway

alias_contact -> privacy settings

alias_force_thread_id -> redirect emails to a document's

thread or create a new document

·

·

Thibault Delavallée (tde@odoo.com)

Summary

Modular approach: inheritance -> features

OpenChatter and Followers -> mail.thread

Needaction -> ir.needaction_mixin

Mail gateway and mail aliases -> mail.alias

Customization through subtypes, tracking

-> inheritance (python)

-> light model decoration

-> a bit of subtypes / aliases (XML)

Play with it !

·

·

·

·

·

·

·

·

·

Thibault Delavallée (tde@odoo.com)

Thanks for your attentionQuestions ? tde@openerp.com