如何在odoo中为同一个日历实例获取many2one?

时间:2016-02-02 07:30:26

标签: python-2.7 openerp

以下代码是calendar.event继承模块,所以在这里我将存储一些检查和所有。这里的关系很好。

from openerp.osv import fields, osv
from openerp import api

class calendar_event(osv.osv):

    _inherit = "calendar.event"

    STATE_SELECTION = [
        ('1', 'Corrective'),
        ('2', 'Preventive'),
        ('3', 'Predictive'),
        ]
    SD_SELECTION = [
        ('Shut Down Required', 'Shut Down Required'),
        ('Shut Down Not Required', 'Shut Down Not Required'),

        ]

    _columns = {
            'number' : fields.char('Calendar Inspection ID',readonly=1),
            'tags' : fields.selection(STATE_SELECTION, 'Tags',),
            'user_id': fields.many2one('res.users','res_users_rel','Assigned', track_visibility='onchange',),
            'sht_down': fields.boolean('Shut Down'),

            'company_id11': fields.many2one('res.company', 'Substation', required=True),
            #'place' : fields.many2one('asset.parentlocation','Substation Location',),



            'assetmodelid_add' : fields.many2one('agile.portfolio1','Asset Model Code',),
            'folio_num1' : fields.many2one('asset.asset','Folio Num',),

            'inspection_name' : fields.many2many('asset1.inspection','asset1_inspection_rel','super_id','asset1_inspection_id','Inspection Type'),

            'insp_rslt' : fields.one2many('feedback.tree','insp_rsltts','Inspection Result',),
            'same_as':fields.boolean(),

            }


    _defaults = {
                'number' : lambda self,cr,uid,context={}:self.pool.get('ir.sequence').get(cr,uid,'calendar.event'),
                'sht_down': False,
                }
    def onchange_same_as(self,cr, uid, ids,same_as_above,inspec_type,context=None):
        if same_as:
            return {'value':{'shutdown':frequency,}}
        return {'value':{}}



class feedback_tree(osv.Model):
    _name = 'feedback.tree'

    STATUS = [
        ('done', 'Completed'),
        ('notdone', 'Not-Completed'),
    ]

    _columns = {

        'folionum' : fields.many2one('calendar.event','Task Name',),
        #'folio_number' : fields.many2one('asset.asset','Folio number',),
        'inspec_type' : fields.char('Inspection Type',),
        'insp_msr1' : fields.many2one('results.measure','Attributes',),
        'valuess' : fields.char('Values'),
        'status' : fields.selection(STATUS,'Status'),
        'insp_rsltts': fields.many2one('feedback.form','Result Id'),


    }

下面的代码是上面继承的类<。p>的.xml文件

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>

    <!-- Form & Tree View for Visitor Register -->
    <record model="ir.ui.view" id="inherit_calaner_event">
            <field name="name">calender.event.inherit</field>
            <field name="model">calendar.event</field>
            <field name="inherit_id" ref="calendar.view_calendar_event_form"/>
            <field name="arch" type="xml">
                <xpath expr="//form/sheet/div[@class='oe_title']" position="after">
                    <group>
                       <!-- <field name="number"/>-->
            <field name="company_id11"/>

            <!--<field name="asset_catg_id"/>
            <field name="area_id" widget="selection"/>-->
            <field name="assetmodelid_add" />
            <field name="folio_num1" domain="[('assetmodelid_add', '=', assetmodelid_add)]"/>
            <field name="inspection_name" domain="[('assetmodelid_add', '=', assetmodelid_add)]"/>
            <field name="sht_down"/>
                    </group>

                </xpath>
                <xpath expr="//form/sheet/notebook/page/group/group/field[@name='location']" position="after">
                    <group>
                    </group>
                </xpath>
        <xpath expr="//form/sheet/notebook/page/group/group/field[@name='categ_ids']" position="replace">
        <field name="tags"/></xpath>
        <xpath expr="//form/sheet/div/label[@string='Attendees']" position="replace">
         <label string="Attendees" class="oe_edit_only"/></xpath>
        <xpath expr="//form/sheet/div/h2" position="replace">
         <field name="user_id"/></xpath>
        <xpath expr="//form/sheet/notebook/page[@string='Meeting Details']" position="after">
            <page string="Feedback">
            <field name="insp_rslt" >
            <tree string="Feedback" editable="bottom" > 
            <field name="folionum" />

            <field name="insp_msr1"/>
            <field name="valuess"/>
            <field name="status"/></tree></field>
            </page>
        </xpath>
            </field>
        </record>
    <record id="calendar_view_calendar_event_search" model="ir.ui.view">
        <field name="name">calender.event.view</field>
        <field name="model">calendar.event</field>
    <field name="inherit_id" ref="calendar.view_calendar_event_search"/>
        <field name="arch" type="xml">
        <xpath expr="//search/filter[@name='message_unread']" position="after">
        <filter string="Shut Down" name="sht_down" domain="[('sht_down','=',True)]"/>
        <filter string="No Shut Down" name="sht_down" domain="[('sht_down','=',False)]"/></xpath>
        </field>
    </record>

    </data>
</openerp> 

我的要求是第一个我将在inspection_name课程中选择calender.evnt字段。在feedback.tree我有一列inspc_type,此字段必须只提供与为此实例分配的inspection_name的多个二者相同的列表。

示例:inspction_name有A,B,C 在feedback.tree中,inspec_type只能获得A,B,C,而不是所有存储在此记录之前的inspection_name。

-----------------被修改----------------------------- -

我有 calendar.event.py

'inspection_name' : fields.many2many('asset1.inspection','asset1_inspection_rel','super_id','asset1_inspection_id','Inspection Type'),
calendar.event.py

.xml文件

<field name="assetmodelid_add" />
            <field name="folio_num1" domain="[('assetmodelid_add', '=', assetmodelid_add)]"/>
            <field name="inspection_name" domain="[('assetmodelid_add', '=', assetmodelid_add)]"/>

我想在feedback.tree中使用相同的过滤器。当我进行域过滤时,其显示assetmodelid_add不存在。你是因为在feedback.tree我们没有这个领域所以如何破解这个

'inspec_type': fields.char('Inspection Type',),

字段必须为此类'inspec_type'字段

进行域过滤

0 个答案:

没有答案