Odoo хөгжүүлэлтийн үед талбарыг хэрэглэгчийн id эсвэл бүлгээр нь хаах
Дусал нэвтэрхий толь-с
16:21, 15 Аравдугаар сар 2015-ий байдлаарх Almas (Яриа | оруулсан хувь нэмэр) хэрэглэгчийн хийсэн залруулга
Жишээ нь доорх байдлаар хийж өгнө.
__init__.py</b></p>import product_template
__openerp__.py
{"name": "Hide Cost Price from Some Groups", "version": "1.0.0", "depends": ["product"], "category": "", "description": """ Hide Cost Price from Some Groups. """, "data": [ "product_view.xml",
],"installable": True, "active": False, }
product_template.py
from openerp.osv import fields, osvfrom openerp.tools.translate import _ class product_template(osv.osv):
_inherit = "product.template"
product_view.xml
<?xml version="1.0" encoding="utf-8"?> <openerp> <data> <record id="product_template_form_view_restricted" model="ir.ui.view"> <field name="name">product.template.common.form</field> <field name="model">product.template</field> <field name="inherit_id" ref="product.product_template_form_view"/> <field name="arch" type="xml"> <field name="standard_price" position="replace"> <field name="standard_price" groups="base.group_erp_manager,purchase.group_purchase_manager"/> </field> </field> </record> </data> </openerp>
Гэхдээ энэ тохиолдолд ажиллахгүй. Учир нь яг энэ сольж байгаа талбарыг нь өөр нэг модуль дараа нь дахин replace хийж өөрчилснөөс ажиллахгүй байгаа. Ийм тохиолдолд тухайн талбарыг биш гадна талын агуулж буй хэсэг дээр зааж өгнө. Жишээ нь:
<xpath expr="//group[@name='procurement']/group[@name='general']" position="replace"> <group name="general" groups="base.group_sale_manager_dusal"> <field name="standard_price"/> </group> </xpath>
Харин хэрэглэгчийн id-аар ялгаж харуулахгүй нуухын тулд доорх байдлаар нууж болно: Жишээ 1
<field name="boyfriend_name" attrs="{'invisible':[('married', '!=', False)]}" />
Жишээ 2
<field name="write_if_manager" attrs="{'readonly':['|',('is_manager', '==', 'false'),('state','not in','['draft']') ] }/> <field name="is_manager" invisible="1"/>