Odoo 9如何编辑聊天机会备注视图

时间:2017-08-21 08:00:03

标签: javascript xml view widget odoo-9

我花了很多时间,试图解决我的问题,我想在odoo crm.lead中编辑聊天中的注释视图,因为我想在作者之后添加注释的子类型(电子邮件或注释或任务等)。请注意,我知道如何获得价值,但我不知道我需要编辑什么才能在聊天中更改消息视图,我所知道的一切都是从视图中发出的这一行宣告整个聊天:

<field name="message_ids" widget="mail_thread"/>

所以请告诉我需要更改的内容和位置,以便在聊天中添加子类型:

That's what I want to change

1 个答案:

答案 0 :(得分:0)

好的,一如既往,我必须自己做所有事情,所以我会发布我发现的东西,也许我会帮助别人:

你需要去静态&gt; src&gt; xml&gt; thread.xml 你必须在网站资源中搜索你想编辑的东西:

enter image description here

然后在xml文件中搜索o_thread_message_core

当你找到它时,你需要从我们的行中搜索一些东西,例如res.partner或date,然后你会得到一些你可以添加一些东西的地方,我把这一行添加到代码中:

<t t-if="message.model == 'crm.lead' &amp;&amp; (message.is_note)">
                    Type: <t t-esc="message.subtype_id[1]"/>
                </t>

毕竟,这一行的代码如下:

<div t-att-class="'o_thread_message_core' + (message.is_note ? ' o_mail_note' : '')">
            <p t-if="message.display_author" class="o_mail_info">
                <t t-if="message.is_note">
                    Note by
                </t>

                <strong t-if="message.mailto">
                    <a class="o_mail_mailto" t-attf-href="mailto:#{message.mailto}?subject=Re: #{message.subject}">
                        <t t-esc="message.mailto"/>
                    </a>
                </strong>
                <strong t-if="!message.mailto &amp;&amp; message.author_id[0]"
                        data-oe-model="res.partner" t-att-data-oe-id="message.author_redirect ? message.author_id[0] : ''"
                        t-attf-class="#{message.author_redirect ? 'o_mail_redirect' : ''}">
                    <t t-esc="message.displayed_author"/>
                </strong>
                <strong t-if="!message.mailto &amp;&amp; !message.author_id[0]">
                    <t t-esc="message.displayed_author"/>
                </strong>

                <small t-att-title="message.date">
                    - <t t-esc="message.hour"/>
                </small>


                <!-- VVV HERE I ADDED THIS VVV-->
                <t t-if="message.model == 'crm.lead' &amp;&amp; (message.is_note)">
                    Type: <t t-esc="message.subtype_id[1]"/>
                </t>
                <!-- ^^^ HERE I ADDED THIS ^^^-->




                <t t-if="message.model &amp;&amp; (message.model != 'mail.channel') &amp;&amp; options.display_document_link">
                    on <a t-att-href="message.url" t-att-data-oe-model="message.model" t-att-data-oe-id="message.res_id"><t t-esc="message.record_name"/></a>
                </t>
                <t t-if="message.origin_id &amp;&amp; (message.origin_id !== options.channel_id)">
                    (from <a t-att-data-oe-id="message.origin_id" href="#">#<t t-esc="message.origin_name"/></a>)
                </t>
                <span>
                    <i t-if="options.display_stars &amp;&amp; !message.is_system_notification"
                        t-att-class="'fa fa-lg o_thread_message_star ' + (message.is_starred ? 'fa-star' : 'fa-star-o')"
                        t-att-data-message-id="message.id" title="Mark as Todo"/>
                   <i t-if="message.record_name &amp;&amp; message.model != 'mail.channel' &amp;&amp; options.display_reply_icon"
                       class="fa fa-reply o_thread_message_reply"
                       t-att-data-message-id="message.id" title="Reply"/>
                    <i t-if="message.is_needaction &amp;&amp; options.display_needactions"
                       class="fa fa-check o_thread_message_needaction"
                       t-att-data-message-id="message.id" title="Mark as Read"/>
                </span>

            </p>

但还有一件事要做: 子类型未默认导入到消息外观数据中,因此您需要搜索一些在消息信息中不正常的典型变量(对我来说是subtype_description)并找到导入和声明它的位置。

我在静态&gt;中找到了它src&gt; js&gt; chat_manager.js:

enter image description here

如你所见,我实际上添加了从消息信息中导入subtype_id的行,毕竟我可以使用xml中的message.subtype_id作为值,我正在搜索。

最后在odoo消息中看起来像:

enter image description here

接下来要做的就是从这里制作自定义模块因为我所做的一切,我在本地odoo数据库上做了,但这很容易,所以这个问题解决了,祝你有愉快的一天;)