2017-10-31 4 views
0

既存のテンプレートにタグを挿入しようとしましたが、動作させることができませんでした。 odoo /アドオン/メール/静的/ SRC/XML/thread.xmlでOdoo 10継承したqwebテンプレートの内容を置き換える方法

既存のテンプレート

<?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 /アドオン/ mycustom /静的/ SRC/XML/thread.xml):
元のテンプレートのクラスo_imageの後にHello worldを挿入したいとします。

<?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> 

テンプレートをレンダリングするマイジャバスクリプト(odoo /アドオン/ mycustom /静的/ 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 /アドオン/ mycustom /ビュー/ 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 /アドオン/ 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', 
    ],   
} 

ブラウザのコンソールにHello Worldのテキストが表示されているので、JavaScriptが読み込まれています。 しかし、チャットスレッドで<div>Hello World</div>が表示されません。私は何を取りこぼしたか?

答えて

0

これを試してみてください:

<t t-name="mail.Attachment" t-extend="mail.Attachment"> 
    <t t-jquery="o_image" t-operation="inner"> 
     <div>Hello world</div> 
    </t> 
</t> 

は、それはあなたを助けることを願っています。

+0

t-operation = "inner"とt-operation = "after"の両方に変更されても動作しません – peterhoth

関連する問題