Наследование данных в openerp

Я унаследовал исходящие данные из одной формы в другую форму, используя следующее кодирование

xml: <field name = "res_model">lis.lab</field> 
python: _inherit="lis.lab"

lis.lab — это первая форма. Ввожу информацию и сохраняю только здесь. test.lab — еще одна форма. Здесь я закончил отображать эту запись здесь (test.lab) в виде дерева, используя щелчок на две строки выше. Но у него есть только выходное поле в форме «test.lab». И это не показывает новое поле во второй форме (test.lab).

XML

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- ===================== This is tree layout =============================-->
<record id="lis_tree" model="ir.ui.view">
        <field name="name">Lab Registration</field>
        <field name="model">lis.lab</field>
        <field name="arch" type="xml">
            <tree string="lab">
                <field name = "name"/>
                <field name = "customer_email"/>
                <field name = "customer_name"/>
                <field name = "customer_city"/>
                <field name = "customer_mobile"/>
            </tree>
        </field>
    </record>

<!-- ========================This is Form layout===============================-->
<record id="lis_form" model="ir.ui.view">
        <field name="name">Lab Registration</field>
        <field name="model">lis.lab</field>
        <field name="arch" type="xml">
            <form string="lab" version="7.0">
                <sheet>
                    <group>
                        <field name = "name"/>
                        <field name = "customer_name" on_change="on_change_customer(customer_name)"/>
                        <field name = "customer_city"/>
                        <field name = "customer_email"/>
                        <field name = "customer_mobile"/>    
                    </group>
               </sheet>
            </form>
       </field>
    </record>

<!-- ========================= Action Layout ============================= -->
    <record id="action_lab" model="ir.actions.act_window">
        <field name="name">Lab Registration</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">lis.lab</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
        <field name="view_id" ref="lis_tree"/>
    </record>

    <!-- ===================== This is tree layout =============================-->
<record id="test_tree" model="ir.ui.view">
        <field name="name">Test Report</field>
        <field name="model">test.lab</field>
        <field name="arch" type="xml">
            <tree string="test">
                <field name = "name"/>
                <field name = "customer_email"/>
                <field name = "customer_name"/>
                <field name = "customer_city"/>
                <field name = "customer_mobile"/>
            </tree>
        </field>
    </record>

<!-- ========================This is Form layout===============================-->
<record id="test_form" model="ir.ui.view">
        <field name="name">Test Report</field>
        <field name="model">test.lab</field>
        <field name="arch" type="xml">
            <form string="test" version="7.0">
                <sheet>
                    <notebook >
                        <page string="Hamthalaogy Report">
                            <field name = "sam" />
                        </page>
                        <page string="Serology Report">
                            <field name = "sam1" />
                        </page>
                    </notebook>
                </sheet>
            </form>
       </field>
    </record>

<!-- ========================= Action Layout ============================= -->
    <record id="action_test" model="ir.actions.act_window">
        <field name="name">Test Report</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">lis.lab</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
        <field name="view_id" ref="test_tree"/>
    </record>

    <!-- ===========================Menu Settings=========================== -->
    <menuitem name = "LIS" id = "menu_lis_lab" />
        <menuitem name = "Lab Info" id = "menu_sub" parent = "menu_lis_lab"/>
            <menuitem name = "Lab Registration" id = "lab_register" parent = "menu_sub" action = "action_lab" />
            <menuitem name = "Test Report" id = "lab_test" parent = "menu_sub" action = "action_test" />

</data>
</openerp>

питон

from osv import osv
from osv import fields

class cus(osv.osv):
 _name = "lis.lab"
 _description = "This table is for keeping lab data of cord blood"
 _columns = {
    'name': fields.char('Lab Id',size=20,required=True),
    'customer_name': fields.many2one('res.partner', 'Customer Name', domain=[('customer', '=', True)]),
    'customer_city': fields.char('City', size=20),
    'customer_email': fields.char('Email', size=20),
    'customer_mobile': fields.char('Mobile', size=20),
    'sam': fields.char('Sample', size=64),
    'sam1': fields.char('Sample1', size=64)
 }
 def on_change_customer(self, cr, uid, ids, customer_name, context=None):
  values = {}
  if customer_name:
   cust = self.pool.get('res.partner').browse(cr, uid, customer_name, context=context)
   values = {
    'customer_city': cust.city,
    'customer_email': cust.email,
    'customer_mobile': cust.mobile
   }
  return {'value' : values}

class test(osv.osv):
 _name = "test.lab"
 _inherit = "lis.lab"
 _description = "Lab Result"
 _columns = {

 }
 def on_change_labid(self, cr, uid, ids, name, context=None):
  values = {}
  if name:
   custinfo = self.pool.get('lis.lab').browse(cr, uid, name, context=context)
   values = {
   }
  return {'value' : values}

person Balakrishnan    schedule 29.01.2014    source источник
comment
пожалуйста, проверьте код нового ответа, данного мной. Спасибо   -  person Bhavesh Odedra    schedule 01.02.2014


Ответы (1)


Используйте наследование классов для достижения своей цели.

Вы используете концепцию наследование путем прототипирования OpenERP. Где _имя != _наследовать. Таким образом, новые экземпляры дочернего класса никогда не будут видны представлениям или деревьям, работающим с таблицей суперклассов.

Чтобы отобразить экземпляры суперкласса в представлении дочернего класса, вам необходимо использовать наследование классов, где _name = _inherit. где Ребенок наследует данные (поля) и поведение (функции) своего родителя.

person Yajushi    schedule 31.01.2014