0

我目前正在 CentOS 6.4 机器上部署 OpenERP 7。我正在虚拟化整个系统,以便在出现问题时备份整个系统。

一切似乎都很好,我改变了我的模型,我的观点,但是已经两天了,我一直在努力解决一个看似不可能的问题。

我的部署是针对书厂的,所以需要定制产品(页数、装订类型等...)

在新产品视图中,我需要一些可以汇总到字段 x_colorpages 和 x_bwpages 的内容来填充第三个字段:x_totalpages。容易吧?

我有基于 product.poduct 对象的 XML、product.normal.form 视图

当我更改“x_paginecolori”或“xpagineBN”中的值时,它应该会自动触发 onchange 函数。

所以我进入产品模块代码并编写了我的 cal_change_event

在位于的python文件product.py中:/usr/lib/python2.6/site-packages/openerp-7.0_20130524_231019-py2.6.egg/openerp/addons/account/product.py

def cal_change_event(self, cr, uid, ids, x_PagineColori, x_PagineBN):
      res = {}
      sum = 0
if not  x_PagineColori: 
    return {}
else if not x_PagineBN:
    return {}
else:
    sum = x_PagineColori + x_PagineBN
    res={'x_pagine':sum }
    return {'value':res} 

无论我做什么,onchange 事件都会触发一个警告弹出窗口:

文件“/usr/lib/python2.6/site-packages/openerp-7.0_20130524_231019-py2.6.egg/openerp/osv/osv.py”,第 185 行,在 execute_cr 返回 getattr(object, method)(cr, uid, *args, **kw) AttributeError: 'product.product' 对象没有属性 'cal_change_event'

在我看来,该功能没有看到,我应该把它放在哪里?如果我将 Product.Product 放在 product.py 内部的类中,它怎么能没有这个属性?

我对整个 CENTOS 安装进行了 grep,以搜索 openerp 的多个实例,或者查看我是否遗漏了有关 product.py 的内容

似乎 product.py 不是正确的文件,即使我删除了其他 On_change 函数,也没有什么不好的事情发生。但是目录必须是正确的,因为错误日志在调试弹出窗口中给了我相同的位置。

我应该从头开始构建一个自定义模块来完成这项工作吗?是否禁止以某种方式修改标准产品模块?

在此先感谢您的任何见解,我的大脑默认了这一点。

这是我的 XML:

            <?xml version="1.0"?>
                <form string="Product" version="7.0">
                                        <sheet>    
            <div>
                             <label for="x_partner2" string="Cliente Referente del prodotto"/>
                                 <field name="x_partner2" />
                                    </div>
                                        <field name="image_medium" widget="image" class="oe_avatar oe_left"/>
                                        <div class="oe_title">
                                            <div class="oe_edit_only">
                                                <label for="name" string="Product Name"/>
                                            </div>
                                            <h1>
                                                <field name="name"/>
                                            </h1>
                                            <label for="categ_id" class="oe_edit_only"/>
                                            <h2><field name="categ_id"/></h2>
                                            <div name="options" groups="base.group_user">
                                                <field name="sale_ok"/>
                                                <label for="sale_ok"/>
                                            </div>
                                        </div>
                                        <div class="oe_right oe_button_box" name="buttons">
                                        </div>
                                        <notebook>
                  <page string="Information">
                                                <group>
                                                    <group>
                                                        <field name="type"/>
                                                        <field name="uom_id" on_change="onchange_uom(uom_id,uom_po_id)" groups="product.group_uom"/>
                                                        <field name="list_price"/>
                                                    </group>
                                                    <group>
                                                        <field name="default_code"/>
                                                        <label for="ean13"/>
                                                        <div name="ean">
                                                            <field name="ean13" placeholder="e.g. 5901234123457"/>
                                                        </div>
                                                    </group>
                                                    <group>
                                                        <field groups="product.group_product_variant" name="variants"/>
                                                        <field name="price_margin" groups="product.group_product_variant"/>
                                                        <field name="price_extra" groups="product.group_product_variant"/>
                                                    </group>
                                                </group>
                                                <field name="description" placeholder="describe the product characteristics..."/>
                            </page>
                  <page string="Dati del volume Universal Book">
                <group>
                <group>
                                            <field name="x_DataCreazione" />
                                                        <field name="x_DataUltimaModifica" />
                                        <field name="x_Autore" />
                                                        <field name="x_Larghezza"/>
                                         <field name="x_Altezza" />
                                         <field name="x_Dorso"/>
                                                 <field name="x_Rilegatura" />
                 <field name="x_volumiformati" />

                </group>
                </group>
                <group>
                                                 <field name="x_PagineColori"  on_change="cal_change_event(x_PagineColori,x_PagineBN)" />
                                                 <field name="x_PagineBN"  on_change="cal_change_event(x_PagineColori,x_PagineBN)" />
                                                 <field name="x_pagine" />
                </group>
                <group>
                                                 <field name="x_prezzo" />
                </group>
                </page>

                 <page string="Copertina">
                <group>
                <group>
                <field name="x_TipoCartaCopertina"/>
                <field name="x_TipoStampaCopertina"/>
                                      <field name="x_TipoFFR"/>
                                                 <field name="x_PlastificazioneCopertina" />
                                                 <field name="x_NumeroCopertinePerPagina" />
                </group>
                <group>
                <field name="x_TipoCartaSovracopertina"/>
                <field name="x_TipoStampaScopertina"/>
                 <field name="x_TipoFFRSovracopertina"/>
                 <field name="x_PlastificazioneSovracopertina"/>
                </group>
                </group>
                <label for="x_aletta" string="Libro con alette?"/>
                 <field name="x_aletta" />
                <label for="x_Note" string="Note"/>
                                                 <field name="x_Note" />
                                            </page>
                <page string="Margini">
                <group>
                 <field name="x_pagriferimento"/>
                 <field name="x_MargineDestro"/>
                 <field name="x_MargineDestro"/>
                <field name="x_MargineInferiore" />
                <field name="x_MargSinistro" />
                <field name="x_MargineSuperiore"/>
                <field name="x_RiferimentoLIFRE" />
                <field name="x_MergineSuperioreLIFRE" />
                <field name="x_MargineInferioreLIFRE" />
                </group>
                </page>
                                            <page string="Procurements" groups="base.group_user">
                                                <group name="procurement">
                                                    <group name="general">
                                                        <field name="cost_method" groups="product.group_costing_method"/>
                                                        <field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}"/>
                                                    </group>
                                                    <group name="procurement_uom" groups="product.group_uom" string="Purchase">
                                                        <field name="uom_po_id"/>
                                                    </group>
                                                </group>
                                                <separator string="Description for Suppliers"/>
                                                <field name="description_purchase" placeholder="This note will be displayed on requests for quotation..."/>
                                            </page>
                                            <page string="Inventory" groups="base.group_user">
                                                <group name="inventory">
                                                    <group name="status" string="Status">
                                                        <field name="state"/>
                                                        <field name="product_manager"/>
                                                    </group>
                                                    <group name="Weights" groups="product.group_stock_packaging" string="Weights">
                                                        <field digits="(14, 3)" name="volume" attrs="{'readonly':[('type','=','service')]}"/>
                                                        <field name="weight" attrs="{'readonly':[('type','=','service')]}"/>
                                                        <field name="weight_net" attrs="{'readonly':[('type','=','service')]}"/>
                                                    </group>
                                                </group>
                                            </page>
                                            <page string="Sales" attrs="{'invisible':[('sale_ok','=',False)]}">
                                                <group name="sale">
                                                    <group string="Sale Conditions">
                                                        <label for="warranty"/>
                                                        <div>
                                                            <field name="warranty" class="oe_inline"/> months
                                                        </div>
                                                    </group>
                                                    <group groups="product.group_uos" string="Unit of Measure">
                                                        <field name="uos_id"/>
                                                        <field name="uos_coeff"/>
                                                        <field name="mes_type"/>
                                                    </group>
                                                </group>
                                                <field name="packaging" groups="product.group_stock_packaging">
                                                    <form string="Packaging" version="7.0">
                                                        <group col="4">
                                                            <field name="ean"/>
                                                            <field name="sequence" invisible="1"/>
                                                            <newline/>
                                                            <field name="qty"/>
                                                            <field name="ul"/>
                                                            <field name="weight_ul"/>
                                                            <separator colspan="4" string="Palletization"/>
                                                            <field name="ul_qty"/>
                                                            <field name="rows"/>
                                                            <field name="weight"/>
                                                            <separator colspan="4" string="Pallet Dimension"/>
                                                            <field name="height"/>
                                                            <field name="width"/>
                                                            <field name="length"/>
                                                        </group>
                                                        <separator colspan="4" string="Description"/>
                                                        <field name="name"/>
                                                    </form>
                                                </field>
                                                <separator string="Description for Quotations"/>
                                                <field name="description_sale" placeholder="note to be displayed on quotations..."/>
                                            </page>
                                        </notebook>
                                    </sheet>
                                    <div class="oe_chatter">
                                        <field name="message_follower_ids" widget="mail_followers"/>
                                        <field name="message_ids" widget="mail_thread"/>
                                    </div>
                                </form>
4

2 回答 2

0

这里的所有代码都可以正常工作。问题似乎是我的 CENTOS 安装。此代码在 WINDOWS 和我刚刚制作的新 XUBUNTU 机器上正常工作。不幸的是,它在 CentOS 中不起作用的原因仍然让我难以理解我将结束这个话题,希望我的 .XML 和 .PY 代码可以成为所有希望在其产品中拥有个性化字段并让它们以交互方式更改的人的有用模板。感谢文山的帮助,正如您在开始时注意到的那样,代码没有任何问题。

于 2013-08-27T10:09:56.590 回答
0

不禁止修改标准模块,但一般建议自己编写模块来扩展OpenERP。

我不知道您对 OpenERP 有多少经验(如果您是 OpenERP 新手,问题可能是由非常简单的错误引起的),所以请原谅我假设您是新手。

  1. 是否重启过 OpenERP 并重新安装了产品模块?
  2. cal_change_event() 方法是否定义在 _name = "product.product" 的类中?
  3. 你能发布你的 XML 代码吗?问题可能与您的 Python 代码无关。
于 2013-06-30T08:50:52.240 回答