我花了很多时间,试图解决我的问题,我想在odoo crm.lead中编辑聊天中的注释视图,因为我想在作者之后添加注释的子类型(电子邮件或注释或任务等)。请注意,我知道如何获得价值,但我不知道我需要编辑什么才能在聊天中更改消息视图,我所知道的一切都是从视图中发出的这一行宣告整个聊天:
<field name="message_ids" widget="mail_thread"/>
所以请告诉我需要更改的内容和位置,以便在聊天中添加子类型:
答案 0 :(得分:0)
好的,一如既往,我必须自己做所有事情,所以我会发布我发现的东西,也许我会帮助别人:
你需要去静态&gt; src&gt; xml&gt; thread.xml 你必须在网站资源中搜索你想编辑的东西:
然后在xml文件中搜索o_thread_message_core
当你找到它时,你需要从我们的行中搜索一些东西,例如res.partner或date,然后你会得到一些你可以添加一些东西的地方,我把这一行添加到代码中:
<t t-if="message.model == 'crm.lead' && (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 && 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 && !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' && (message.is_note)">
Type: <t t-esc="message.subtype_id[1]"/>
</t>
<!-- ^^^ HERE I ADDED THIS ^^^-->
<t t-if="message.model && (message.model != 'mail.channel') && 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 && (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 && !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 && message.model != 'mail.channel' && 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 && 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:
如你所见,我实际上添加了从消息信息中导入subtype_id的行,毕竟我可以使用xml中的message.subtype_id作为值,我正在搜索。
最后在odoo消息中看起来像:
接下来要做的就是从这里制作自定义模块因为我所做的一切,我在本地odoo数据库上做了,但这很容易,所以这个问题解决了,祝你有愉快的一天;)