2017-05-08 27 views
2

我需要在类PosModel中的/point_of_sale/static/src/js/models.js 中包含其他字段,可变模型'res.company'模型。在基地的变体,它看起来是这样的:如何更新odoo 10中的js数据

odoo.define('point_of_sale.models', function (require) { 
"use strict"; 

... 

var QWeb = core.qweb; 
var _t = core._t; 
var Mutex = utils.Mutex; 
var round_di = utils.round_decimals; 
var round_pr = utils.round_precision; 
var Backbone = window.Backbone; 

var exports = {}; 

exports.PosModel = Backbone.Model.extend({ 
    initialize: function(session, attributes) { 
     ... 
    }, 
    ... 
    models: [ 
     { 
     model: 'res.company', 
     fields: [ 'currency_id', 'email', 'website', 'company_registry', 'vat', 'name', 'phone', 'partner_id' , 'country_id', 'tax_calculation_rounding_method'], 
     ids: function(self){ return [self.user.company_id[0]]; }, 
     loaded: function(self,companies){ self.company = companies[0]; }, 
    }, 
    ] 
}) 
}); 

虽然我需要包括更多的领域,比方说从“公司”模型“城市”,“标志”。因此,模型应该是这样的:

... 
     models: [ 
      { 
      model: 'res.company', 
      fields: [ 'currency_id', 'email', 'website', 'company_registry', 'vat', 'name', 'phone', 'partner_id' , 'country_id', 'tax_calculation_rounding_method', 'logo', 'city'], 
      ids: function(self){ return [self.user.company_id[0]]; }, 
      loaded: function(self,companies){ self.company = companies[0]; }, 
     }, 
     ] 
... 

我试图用包括像这样:

odoo.my_addon = function(instance){ 
    var _t = instance.web._t, 
    _lt = instance.web._lt; 
    var QWeb = instance.web.qweb; 

instance.point_of_sale.PosModel.include({ 
models: [ 
    { 
    model: 'res.company', 
    fields: [ 'currency_id', 'email', 'website', 'company_registry', 'vat', 'name', 'phone', 'partner_id' , 'country_id', 'tax_calculation_rounding_method', 'logo', 'city'], 
    ids: function(self){ return [self.user.company_id[0]]; }, 
    loaded: function(self,companies){ self.company = companies[0]; }, 
}] 
}) 
}); 

但它并没有制定出

回答

1

您需要做的仅仅是像下面达到您的要求。

在静态/ src/js目录下创建一个新的JS文件,并在其下面写下代码,就是这样。

odoo.define('yourmodulename.filename', function (require) { 
 
    var models = require('point_of_sale.models'); 
 
    models.load_fields("res.company", ['logo', 'city']); 
 
});