扩展JS Web模块Odoo PoS

时间:2016-02-18 11:03:31

标签: javascript module openerp extend

我想在models.js文件中扩展JS模块 PosModel (模型是point_of_sale)。这是因为我想在下面添加一个字段:

var pattern = "(?:[0-9]+/\w+)[0-9]";
var matcher = new Regex(pattern);
var result = matcher.Matches(yourEntireSetOfLinesInAString);

我已经在静态>下向我的模块添加了一个新的js文件src> js> models_extend.js 并将此文件添加到xml模板中,如下所示:

models: [
     ...
     model:  'res.partner',
        fields: ['name','street',..,'MY_NEW_FIELD'],

这是在我的models_extend.js文件中:

<template id="assets_backend" name="dewieuw assets" inherit_id="web.assets_backend">
        <xpath expr="." position="inside">
            <script type="text/javascript" src="/dewieuw/static/src/js/models_extend.js"></script>
        </xpath>
</template> 

出于某种原因,永远不会添加新字段,我认为这是因为他没有使用我的模块扩展模块?任何想法请。

1 个答案:

答案 0 :(得分:1)

您的JS定义必须包含要加载的自定义模块名称。

如果您查看official docs,您会看到您的JS必须声明您的模块范围

  

在Odoo web中,模块被声明为在全局上设置的函数   openerp变量。函数的名称必须与插件相同   (在这种情况下是oepetstore)所以框架可以找到它,并且   自动初始化它。

因此,如果您的模块名为oepetstore,则可以得到如下内容:

openerp.oepetstore = function(instance, local) {

在你的情况下,我猜它会是openerp.dewieuw

提示:执行此操作,只需添加console.logalert('foo')即可确保其已加载。