Skip to Content
Menu
This question has been flagged

Hi.

I'm trying to have views with multi level inheritance, but fields from the children are not shown in the view. I'm currently working in Odoo 11, community version. 

Please see details below:

Trying to have some base models for future wizards. This is how the models are defined (using always inherit = <base_model> for inheritance between models):


Since I want to define views only once, I created a form view for every model, following the same approach: inheriting always from "above". Below is the definition for the (very first) base view, model handleprocess.quick.action:

<record model="ir.ui.view" id="handleprocess_qact_abstract_wz_form_view">
        <field name="name">handleprocess_qact_abstract_wz.form</field>
        <field name="model">handleprocess.quick.action</field>
        <field name="arch" type="xml">
            <form string="Quick Action">
                <group class="bg-info" col="4" id="security_check_group">
                    <h6 colspan="4" style="color: red">Are you sure you want to execute this Quick Action?</h6>
                    <h6 colspan="4">Check to confirm you know what you are doing: <field name="security_check" nolabel="1" /></h6>
                </group>
                <group id="basic_fields">
                    <field name="environment" />
                    <field name="data_center" attrs="{'invisible': [('environment', '!=', 'prod')], 'required': [('environment', '=', 'prod')]}" />
                </group>
                <footer class="pull-right">
                    <button name="execute_qact" type="object" string="Execute" class="oe_highlight" attrs="{'invisible': [('security_check', '=', False)]}" />
                    <button special="cancel" string="Cancel" />
                </footer>
            </form>
        </field>
    </record>

Then, each one of the next 3 views inherits from "above" using xpath and adding its own fields.

This is the second view, model handleprocess.quick.action.update.file:

<record model="ir.ui.view" id="handleprocess_qact_abstract_wz_form_view">
        <field name="name">handleprocess_qact_abstract_wz.form</field>
        <field name="model">handleprocess.quick.action</field>
        <field name="arch" type="xml">
            <form string="Quick Action">
                <group class="bg-info" col="4" id="security_check_group">
                    <h6 colspan="4" style="color: red">Are you sure you want to execute this Quick Action?</h6>
                    <h6 colspan="4">Check to confirm you know what you are doing: <field name="security_check" nolabel="1" /></h6>
                </group>
                <group id="basic_fields">
                    <field name="environment" />
                    <field name="data_center" attrs="{'invisible': [('environment', '!=', 'prod')], 'required': [('environment', '=', 'prod')]}" />
                </group>
                <footer class="pull-right">
                    <button name="execute_qact" type="object" string="Execute" class="oe_highlight" attrs="{'invisible': [('security_check', '=', False)]}" />
                    <button special="cancel" string="Cancel" />
                </footer>
            </form>
        </field>
    </record>

If I show the form view for that model at this point, all fields are shown correctly. Fields disappear after the second level inheritance, i.e. after I define this view (for model handleprocess.quick.action.update.file.intergate): 

<record model="ir.ui.view" id="handleprocess_qact_abstract_ig_wz_form_view">
        <field name="name">handleprocess_qact_abstract_ig_wz.form</field>
        <field name="model">handleprocess.quick.action.update.file.intergate</field>
        <field name="inherit_id" ref="handleprocess.handleprocess_qact_update_file_wz_form_view"/>
        <field name="arch" type="xml">
            <data>
                <xpath expr="//field[@name='create_backup']" position="before">
                    <field name="carrier_id" options="{'no_create': True}" />
                </xpath>
            </data>
        </field>
    </record>

And below the wizard's form view, with same issue: no fields are shown.

<record model="ir.ui.view" id="handleprocess_qact_ig_template_wz_form_view">
        <field name="name">handleprocess_qact_ig_template_wz.form</field>
        <field name="model">handleprocess.qact.ig.template.wz</field>
        <field name="inherit_id" ref="handleprocess_qact_abstract_ig_wz_form_view"/>
        <field name="priority">70</field>
        <field name="arch" type="xml">
            <xpath expr="//group[@id='security_check_group']/h6" position="before">
                <div>This Quick Action updates the template files in carrier boxes, in the environment specified below.</div>
            </xpath>
            <xpath expr="//field[@name='carrier_id']" position="after">
                <field name="template_file_id" options="{'no_create': True}" />
            </xpath>
        </field>
    </record>

Please note I'm using different models because I need to separate them according to the fields, since some other wizards are planned to be created in the future, and not all fields are the same for the other wizards (above wizard definition is just the first one, more should be coming).

The action for opening the wizard (TransientModel) is defined like this, calling directly to he wizard model's form view:

<record model="ir.actions.act_window" id="handleprocess_qact_ig_template_wz_action">
        <field name="name">Update Template</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">handleprocess.qact.ig.template.wz</field>
        <field name="view_mode">form</field>
        <field name="view_id" ref="handleprocess.handleprocess_qact_ig_template_wz_form_view" />
        <field name="target">new</field>
    </record>

Am I missing something in the views definition?

Thanks in advance.

Avatar
Discard
Related Posts Replies Views Activity
4
Dec 22
4955
1
Nov 21
2224
4
Feb 24
11357
1
Nov 22
4592
3
Dec 18
7548