跳至內容
選單
此問題已被標幟
3 回覆
28686 瀏覽次數

Hello, 

I want to modify the existing sale module.

I have added a field in new_sale.py and replaced the fileds in new_sale.xml as follows:

----------------------------------------------------------------------------------------------------------

new_sale.py:

from openerp.osv import fields, osv

class new_sale(osv.osv):

  _inherit = "res.partner"

  _columns = {
    'projects_id': fields.integer('Project ID', size=11)
  }

  _defaults ={
    'projects_id': 0
  }

new_sale();

----------------------------------------------------------------------------------------------------------

new_sale.xml:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data>
    <record model="ir.ui.view" id="view_new_sale_form">
        <field name="name">res.partner.form</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form" />
        <field name="arch" type="xml">
            <field name="fax" position="replace">
                <field name="projects_id" />
            </field>
        </field>
    </record>

----------------------------------------------------------------------------------------------------------

Now, I would like to hide the original "Title" field, which is a drop-down menu.

How can I do that?

BTW, I need to press the upgrade button and restart the server,  can I do the two in the command line at the same time? For example, adding some parameters after /etc/init.d/openerp-server force-reload xxxx yyyy zzzz

Thanks.

頭像
捨棄
最佳答案

    <record model="ir.ui.view" id="view_new_sale_form">
        <field name="name">res.partner.form</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form" />
        <field name="arch" type="xml">
            <field name="fax" position="replace">
                <field name="projects_id" />
            </field>
            <field name="title" position="attributes">
                <attribute name="invisible">1</attribute>
            </field>
        </field>
    </record>

 

---EDIT---

wow another answer at the same minute.

it is always better to make the field invisible, instead of deleting it(with replace) as other modules may depend on it for this form.

頭像
捨棄
最佳答案

Hi

Try below code

    <record model="ir.ui.view" id="view_new_sale_form">
        <field name="name">res.partner.form</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form" />
        <field name="arch" type="xml">
            <field name="fax" position="replace">
                <field name="projects_id" />
            </field>
            <field name="title" position="replace">
                <field name="title" invisible="1"/>
            </field>            
        </field>
    </record>

頭像
捨棄

If you only need to change/add attributes to a field, there is no need to use position="replace" and redefine the field, just use position="attributes" and define the attribute. See Felipe's answer.

作者 最佳答案

Thanks a lot. 

頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
2
3月 15
4596
1
6月 23
2895
3
3月 16
8630
1
3月 16
10239
2
3月 15
4145