1
votes

I have two model:

class Requisition(models.Model):
    '''
    This module is responsible for all of the requisition related operations.
    '''

    _name = 'mir.requisition'
    _description = 'Mir Requisition'

    name = fields.Char('Requisition Name', required=True)
    company_id = fields.Many2one('res.company', string='Company')
    requisition_line_ids = fields.One2many('mir.requisition.line', 'requisition_id', string='Requisition Line')


class RequisitionLine(models.Model):
    '''
        This module is responsible for all of the requisition line item related operations.
    '''
    _name = 'mir.requisition.line'
    _description = 'Mir Requisition Line'

    product_id = fields.Many2one(
        'product.product', 'Product', required=True)
    product_qty = fields.Float(
        'Quantity',
        digits=dp.get_precision('Product Unit of Measure'), default=0, required=True)
    product_uom_id = fields.Many2one(
        'product.uom', 'Unit of Measure',
        oldname='product_uom', required=True)
    delivery_date = fields.Date(string='Delivery Date', required=True)
    delivery_location = fields.Many2one('stock.location', 'Warehouse Location', required=True)
    requisition_id = fields.Many2one('mir.requisition', string='Mir Requisition Reference', index=True, ondelete='cascade')
    status = fields.Selection([
        ('draft', 'Draft'),
        ('in_progress', 'In Progress'),
        ('approved', 'Approved'),
        ('cancel', 'Cancel'),
    ], 'draft')

    @api.onchange('product_id')
    def _product_onchange(self):
        product = self.product_id
        self.product_uom_id = self.product_id.uom_id.id
        return {'domain': {'product_uom': [('category_id', '=', product.uom_id.category_id.id)]}}

and view is:

 <!--Requisition Tree View-->
    <record id="mir_requisition_tree" model="ir.ui.view">
        <field name="name">Requisition</field>
        <field name="model">mir.requisition</field>
        <field name="arch" type="xml">
            <tree string="Requisition">
                <field name="name"/>
                <field name="company_id"/>
                <field name="create_uid" string="Created By"/>
                <field name="create_date" string="Created Date"/>
            </tree>
        </field>
    </record>

Currently this view showing data form parent model mir.requisition. But i want to display both model data in a single view. Any help will be appreciated.

1

1 Answers

3
votes

You should take a look the invoice_form definition, it works with 'account.invoice' and 'account.invoice.line' models. Its something like this:

<!--Requisition Tree View-->
<record id="mir_requisition_tree" model="ir.ui.view">
    <field name="name">Requisition</field>
    <field name="model">mir.requisition</field>
    <field name="arch" type="xml">
        <form string="Requisition">
            <field name="name"/>
            <field name="company_id"/>
            <field name="create_uid" string="Created By"/>
            <field name="create_date" string="Created Date"/>
            <field name="requisition_line_ids" nolabel="1" widget="one2many_list" >
                <tree string="Requisition Lines" editable="bottom">
                    <!-- 'mir.requisition.line' fields -->
                </tree>
            </field>
        </form>
    </field>
</record>

I hope this answer can be helful for you.