Question: I need add a section functionality like sales > quotation view has, in one of my tree views. . Code of my view is something like this: <record id="view_qualification_form_inh" model="ir.ui.view"> <field name="name">hr.applicant.form</field> <field name="model">hr.applicant</field> <field name="inherit_id" ref="hr_recruitment.hr_applicant_view_form" /> <field name="arch" type="xml"> <xpath expr="//field[@name = 'description']" position="after"> <notebook> <page string="Qualification"> <field name="qualification_lines"> <tree editable="bottom"> <control> <create name="add_line_control" string="Add a line"/> <create name="add_section_control" string="Add a section" context="{'default_display_type': 'line_section'}"/> </control> <field name="qualification_type_id"/> <field name="qualification_type_line_id" domain="[('qualification_type_id','=',qualification_type_id)]"/> <field name="score" /> </tree> </field> <group class="oe_subtotal_footer"> <field name="avg_score" class="oe_subtotal_footer_separator"/> </group> </page> </notebook> </xpath> </field> </record>  Code of my model: class HrApplicant(models.Model): _inherit = 'hr.applicant' qualification_lines = fields.One2many('hr.applicant.qualification', 'qualification_data',) avg_score = fields.Float(compute='compute_score_average',store=True,index=True, string='Average Score') display_type = fields.Selection([ ('line_section', "Section"), ('line_note', "Note")], default=False, help="Technical field for UX purpose.") class Qualification(models.Model): _name = 'hr.applicant.qualification' _description = 'Applicant Qualification' qualification_data = fields.Many2one('hr.applicant', string='Qualification') qualification_type_id = fields.Many2one('hr.applicant.qualification.rule', string='Qualification Type') qualification_type_line_id = fields.Many2one(related='qualification_type_id.qualification_type_line_id') score = fields.Float(related='qualification_type_line_id.score')  The thing is, I got a add a section option but it is working same like default "add a line".  I know it has lot of things to do with python code, even tried to get it from sales' addon but it has very complex structure. I am a beginner, so if anyone can help me out with code or at-least steps for it.

Answer: You need to set the qualification_lines widget attribute to section_and_note_one2many and define the display_type in the applicant qualification model instead of the applicant model, it will be used to check if you need to add a section (help: Technical field for UX purpose). In the following example the section text will be stored in the name field: View definition: <field name="qualification_lines" widget="section_and_note_one2many"> <tree editable="bottom"> <control> <create name="add_line_control" string="Add a line"/> <create name="add_section_control" string="Add a section" context="{'default_display_type': 'line_section'}"/> </control> <field name="name" widget="section_and_note_text" optional="show"/> <field name="display_type" invisible="1"/> <field name="score"/> </tree> </field>  Model definition: class Qualification(models.Model): _name = 'hr.applicant.qualification' _description = 'Applicant Qualification' name = fields.Char(required=True) display_type = fields.Selection([ ('line_section', "Section"), ('line_note', "Note")], default=False, help="Technical field for UX purpose.") qualification_data = fields.Many2one('hr.applicant', string='Qualification')