2017-05-08 30 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']); 
 
});