伟大的OpenERP 7目录结构之谜

时间:2013-06-29 17:35:55

标签: centos openerp

我目前正在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中     return getattr(object,method)(cr,uid,* args,** kw) AttributeError:'product.product'对象没有属性'cal_change_event'

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

我在整个CENTOS安装中搜索了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>

2 个答案:

答案 0 :(得分:0)

不禁止修改标准模块,但通常建议您编写自己的模块来扩展OpenERP。

我不知道您使用OpenERP获得了多少经验(如果您是OpenERP的新手,问题可能是由非常简单的错误造成的),请原谅我假设您是新手。

  1. 您是否重新启动了OpenERP并重新安装了产品模块?
  2. 是否在_name =&#34; product.product&#34;的类中定义了cal_change_event()方法。 ?
  3. 你能发布你的XML代码吗?问题可能与您的Python代码无关。

答案 1 :(得分:0)

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