Odoo 14:在树视图中添加部分功能 [英] Odoo 14: Add a section functionality in tree view

查看:223
本文介绍了Odoo 14:在树视图中添加部分功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要添加一个部分像销售这样的功能>报价视图在我的树视图之一中..

I need add a section functionality like sales > quotation view has, in one of my tree views. .

我的视图的代码是这样的:

<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>

我的模型代码:

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".

我知道它与 python 代码有很多关系,甚至试图从 sales 的插件中获取它,但它的结构非常复杂.我是初学者,所以如果有人可以帮助我解决代码或至少步骤.

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.

推荐答案

您需要将 qualification_lines 小部件属性设置为 section_and_note_one2many 并定义 display_type 在申请人资格模型而不是 applicant 模型中,它将用于检查您是否需要添加一个部分(help:用于用户体验目的的技术领域).

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).

在以下示例中,部分文本将存储在 name 字段中:

In the following example the section text will be stored in the name field:

视图定义:

<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>  

模型定义:

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')

这篇关于Odoo 14:在树视图中添加部分功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆