I have a field member_id= fields.Many2one('res.partner', string="Member")
and Member is created in my Building module through res.partner
. I want to show a custom form on member_id
rather than form view of res.partner
. How is this possible??
py code:
class CreateTicket(models.Model):
_inherit = 'helpdesk.ticket'
member_id = fields.Many2one('res.partner', string="Member", domain=[('company_type', '=', 'person')])
office_no = fields.Char(string="Office No")
floor = fields.Char(string="Floor")
raised_by = fields.Char(string="Raised By")
assigned = fields.Char('Assigned')
@api.onchange('member_id')
def onchange_member_id(self):
obj=self.env['res.contract'].search([('membership_id','=',self.member_id.id)])
self.floor = obj.sector_id.name
self.office_no = obj.inventory_id.id
XML code:
<record model="ir.ui.view" id="create_ticket_inherit_view">
<field name="name">Create Ticket</field>
<field name="model">helpdesk.ticket</field>
<field name="inherit_id" ref="helpdesk_basic.view_helpdesk_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='button_box']/button[@name='action_get_attachments']" position="after">
<button class="oe_stat_button" name="on_assigned"
type="object" icon="fa-tasks">
<field name="assigned" widget="statinfo"/>
</button>
</xpath>
<xpath expr="//field[@name='priority']" position="after">
<field name="member_id"/>
<field name="office_no"/>
<field name="floor"/>
<field name="raised_by"/>
</xpath>
</field>
</record>
I created a member in different model and I want that view but res.partner
base view is being displayed every time.
Use context to pass the XML-Id
of the form that your many2one
should display:
<field name="member_id"
context="{'form_view_ref':'app_name.xmlID_of_form'}" />
There is tree_view_ref, kanban_view_ref
that can be used in X2many fields