Odoo Обсудить: добавить кнопку в сообщение

Я пытаюсь добавить функцию в сообщение в папке "Входящие" - отправить сообщение руководителю.

Хорошо, я сделал так, как это сделал Odoo("погружение в"): добавил кнопку рядом с "Пометить как прочитанное"

/addons/mail/static/src/xml/thread.xml: добавлено новое с

class="fa fa-book o_thread_icon o_thread_message_message_to_lead"

затем в

/addons/mail/static/src/js/thread.js
/addons/mail/static/src/js/client_action.js
/addons/mail/static/src/js/chat_manager.js

Я продублировал функции "mark_as_read" и заменил имя функции.

в addons/mail/models/mail_message.py добавил мою функцию

Итак, это работает! Но я не нашел способа упаковать его в пользовательский модуль: odoo читает /addons/mail/static/src/xml/thread.xml непосредственно из источника и не хранит его в БД. Хорошо, это не проблема, чтобы добавить эту строку в один файл, но как я могу сделать это без JS-модификации?

Я пытался поместить ссылку или кнопку там, но не нашел способа сделать это как <record id="message_to_lead" model="ir.actions.server">..</record>

Может кто-нибудь помочь мне найти способ сделать кнопку действия для сообщения, которое вызывает функцию в модели mail.message?

введите описание изображения здесь

1 ответ

Решение

Интересная вещь - мы можем расширить шаблон thread.xml. Но мы должны сделать это с чем-то вроде:

<?xml version="1.0" encoding="UTF-8"?>
<template>
    <t t-extend="mail.ChatThread.Message">
        <t t-jquery='i[title="Mark as Read"]' t-operation="before">
            <i><a ... /></i>
        </t>
    </t>
</template>

И может быть действие, JS, или что-то еще.

Другие вопросы по тегам