首页 文章

伟大的OpenERP 7目录结构之谜

提问于
浏览
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事件都将触发警告弹出窗口:

**File "/usr/lib/python2.6/site-packages/openerp-7.0_20130524_231019-py2.6.egg/openerp/osv/osv.py", line 185, in execute_cr return getattr(object, method)(cr, uid, *args, kw) AttributeError: 'product.product' object has no attribute '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

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

    我不知道你使用OpenERP有多少经验(如果你是OpenERP的新手,问题可能是由非常简单的错误引起的),所以原谅我假设你是一个新手 .

    • 您是否重新启动了OpenERP并重新安装了产品模块?

    • 是否在_name = "product.product"的类中定义了cal_change_event()方法?

    • 你能发布你的XML代码吗?问题可能与您的Python代码无关 .

  • 0

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

相关问题