我尝试将标记插入现有模板但无法使其生效。
odoo / addons / mail / static / src / xml / thread.xml
中的现有模板<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
<t t-name="mail.ChatThread">
<t t-if="messages.length">
:
<t t-name="mail.ChatComposer.Attachments">
<div class="o_attachments">
<t t-foreach="attachments" t-as='attachment'>
<t t-call="mail.Attachment">
<t t-set="editable" t-value="true"/>
</t>
</t>
</div>
</t>
<t t-name="mail.Attachment">
<div t-attf-class="o_attachment #{attachment.upload ? 'o_attachment_uploading' : ''}" t-att-title="attachment.name">
<a class="o_image" t-att-href='attachment.url' target="_blank" t-att-data-mimetype="attachment.mimetype" t-attf-data-src="/web/image/#{attachment.id}/100x80">
<span class='o_attachment_name'><t t-esc='attachment.name'/></span>
</a>
<t t-if="editable">
<div class="o_attachment_delete">
<i class='fa fa-times-circle' title="Delete this attachment" t-att-data-id="attachment.id"/>
</div>
<div class="o_attachment_progress_bar">
Uploading
</div>
</t>
</div>
</t>
我的自定义模板(odoo / addons / mycustom / static / src / xml / thread.xml):
我想在原始模板中的类o_image之后插入Hello世界。
<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
<t t-name="mycustom.ImageAttachment" t-extend="mail.Attachment">
<t t-jquery="o_image" t-operation="append">
<div>Hello world</div>
</t>
</t>
</templates>
我的javascript渲染模板(odoo / addons / mycustom / static / src / js / thread.js):
odoo.define('mycustom.thread', function (require) {
"use strict";
var core = require('web.core');
var ajax = require('web.ajax');
var qweb = core.qweb;
ajax.loadXML('/mycustom/static/src/xml/thread.xml', qweb);
console.log("INFO", "Hello World")
});
我的资产档案(odoo / addons / mycustom / views / assets.xml):
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets_backend" name="my assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/mycustom/static/src/js/thread.js"></script>
</xpath>
</template>
</odoo>
我的清单文件(odoo / addons / mycustom / 清单 .py):
# -*- coding: utf-8 -*-
{
'name': "test",
'summary': """my test""",
'description': """
This is my test module.
""",
'author': "peter",
'website': "",
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml
# for the full list
'category': 'Test',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base','mail'],
# always loaded
'data': [
'views/assets.xml',
],
'qweb': [
'static/src/xml/thread.xml',
],
}
加载了javascript,因为我可以在浏览器控制台上看到文本Hello World
。
但是,我在聊天帖子中看不到<div>Hello World</div>
。我错过了什么?
答案 0 :(得分:0)
试试这个:
<t t-name="mail.Attachment" t-extend="mail.Attachment">
<t t-jquery="o_image" t-operation="inner">
<div>Hello world</div>
</t>
</t>
希望它会对你有所帮助。