2016-12-08 13 views

ответ

0

Вы должны заменить функцию, а затем вызвать _super(). Включите свой метод в класс, который реализует эту функцию. Аналогичный вопрос опубликован HERE с конкретной реализацией, которая была протестирована. Мой пример ниже не был протестирован полностью. Не забудьте установить ваш аддон и обновить его, чтобы увидеть ваши изменения.

} 
'name': "asc_desc", 

'summary': """ 
    Short (1 phrase/line) summary of the module's purpose, used as 
    subtitle on modules listing or apps.openerp.com""", 

'description': """ 
    Long description of module's purpose 
""", 

'author': "My Company", 
'website': "http://www.yourcompany.com", 

# Categories can be used to filter modules in modules listing 
# Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml 
# for the full list 
'category': 'Uncategorized', 
'version': '0.1', 

# any module necessary for this one to work correctly 
'depends': ['base'], 

# always loaded 
'data': [ 
    # 'security/ir.model.access.csv', 
    'views.xml', 
    'templates.xml', 
    'javascript_import.xml', 
], 
# only loaded in demonstration mode 
'demo': [ 
    'demo.xml', 
], 
} 

javascript_import.xml

<?xml version="1.0" encoding="UTF-8"?> 
<openerp> 
    <data> 
     <template id="assets_backend_asc_desc" name="assets_backend_asc_desc" inherit_id="web.assets_backend"> 
      <xpath expr="script[last()]" position="after"> 
       <script type="text/javascript" src="/asc_desc/static/src/js/asc.js"></script> 
      </xpath> 
     </template> 
    </data> 
</openerp> 

asc.js

odoo.define('asc_desc.ChatThread', function(require){ 
"use strict" 
var core = require('web.core'); 
var QWeb = core.qweb; 
var thread = require('mail.ChatThread'); 

var ORDER = { 
    DESC: -1, 
    ASC: 1, 
} 

thread.include({ 
    render: function (messages, options) { 
     console.log("TEST"); 
     var msgs = _.map(messages, this._preprocess_message.bind(this)); 
     if (this.options.display_order === ORDER.DESC) { 
      msgs.reverse(); 
     } 
     options = _.extend({}, this.options, options); 

     // Hide avatar and info of a message if that message and the previous 
     // one are both comments wrote by the same author at the same minute 
     var prev_msg; 
     _.each(msgs, function (msg) { 
      if (!prev_msg || (Math.abs(msg.date.diff(prev_msg.date)) > 60000) || prev_msg.message_type !== 'comment' || msg.message_type !== 'comment' || (prev_msg.author_id[0] !== msg.author_id[0])) { 
       msg.display_author = true; 
      } else { 
       msg.display_author = !options.squash_close_messages; 
      } 
      prev_msg = msg; 
     }); 

     this.$el.html(QWeb.render('mail.ChatThread', { 
      messages: msgs, 
      options: options, 
      ORDER: ORDER, 
     })); 
    }, 

}); 

}); 

Убедитесь, что вы включите файл Заявляя JS в файле __openerp__.py.

+0

@Philip Stack Можете ли вы мне помочь, что такое JSClass в моем примере -> https://postimg.org/image/qbt4ysz77/ –

+0

Не уверен, я думаю, o_mail_thread. Похоже, вам просто нужно определить, где определены параметры. Иногда это происходит в xml. Или в этом случае это может быть также qweb, который в основном составляет одно и то же. Вы можете переопределить xml или qweb и передать опцию «display_order»: ORDER.DESC. Но я не уверен. Вам нужно вернуться назад и определить, где определены параметры. –

+0

mail.ChatThread.o_mail_thread - это класс Я думаю. –