【问题标题】:Odoo PoS dropdown from Many2one (widget.pos?)Many2one 的 Odoo PoS 下拉菜单(widget.pos?)
【发布时间】:2016-02-09 13:13:28
【问题描述】:

我想将我创建的 Many2one 的下拉列表添加到 pos.xml 文件中(我知道如何继承),有人可以帮我吗?

我在代码中看到他们使用 widget.pos.name 的每个下拉菜单,但我似乎无法在任何地方找到它。这是国家/地区的示例(这里我想用我的变量替换它)。

                <select class='detail client-address-country' name='country_id'>
                    <option value=''>None</option>
                    <t t-foreach='widget.pos.countries' t-as='country'>
                        <option t-att-value='country.id' t-att-selected="partner_country_id ? ((country.id === partner.country_id[0]) ? true : undefined) : undefined"> 
                            <t t-esc='country.name'/>
                        </option>
                    </t>
               </select>

我不知道 t-foreach='widget.pos.countries' 的来源以及如何为我自己的名为“domain”的变量管理它,该变量是“domainnames”类的一部分。并从 res.partner 的 Many2one 调用

【问题讨论】:

标签: javascript widget openerp odoo-8 point-of-sale


【解决方案1】:

你的问题:我在代码中看到他们使用 widget.pos.name 的每个下拉列表,但我似乎无法在任何地方找到它。

答案:widget.pos.name 来自POSmodels.js 行号:130.,这里服务器端模型已加载。这是需要从服务器加载的模型列表。在您的自定义模块中,您还可以根据需要加载其他模型。

Que:我不知道 t-foreach='widget.pos.countries' 来自哪里以及如何为自己的变量管理它?

Answer: Country widget,来自models.js line No: 178model:'res.country'从服务器加载。 在第 180 行:您可以看到在加载的函数中他们定义了 countries(loaded: function(self,countries )) // 你可以在这里给出任何命名约定。 所以你可以直接在你的(Many2One Field)xml文件中传递那个函数参数

示例: 写入自定义模块的JS文件

    module.PosModel.prototype.models.push({ //loaded model
    model:  'res.partner',
        fields: ['partner_id','name'],
        loaded: function(self,partners){ //pass parameters
        self.partners = partners;

    },
});

在 XML 文件中:

       <div class='client-detail'>
        <span class='label'>Partner</span>
            <select class='detail client-partner' name='partner_id'>
                 <option value=''>None</option>
                    <t t-foreach='widget.pos.partners' t-as='partner'>
                      <option t-att-value='partner.id' t-att-selected="partner_partner_id ? ((partner.id === partner.partner_id) ? true : undefined) : undefined">

                       <t t-esc='partner.name'/>
                   </option>
                  </t>
              </select>
    </div>

所以,就像这样:在您的 js 中,您可以在此处加载任何模型并在您的 XML 文件中获取数据。 希望对你有帮助..!!! 谢谢...!!!

【讨论】:

  • 工作出色!非常感谢你。现在唯一的事情是当我从下拉列表中选择一些东西并保存新客户时(我看到这已在数据库中更新)。但是当我现在想编辑客户时,下拉菜单默认显示“无”,你怎么能改变这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
  • 1970-01-01
  • 2012-07-05
相关资源
最近更新 更多