Se rendre au contenu
Menu
Cette question a été signalée
2 Réponses
5460 Vues

Hello,

 I built a view like this, in which I would like to filter the lines of the Notebook (O2M), following the values ​​that I will select at the main field of the view ( banque and projet) . as i have dificulties to put image here, you can see my screenshot \here ( \https://www.developpez.net/forums/d2011774/logiciels/solutions-d-entreprise/erp/odoo-ex-openerp/filtrer-one2many-l-aide-d-chant-many2one-odoo12/ ).  

view code:  
{{<record id="view_btp_etatcaution_form" model="ir.ui.view">
            <field name="name">etatcaution</field>
            <field name="model">btp.etatcaution</field>
            <field name="arch" type="xml">
				 <form string="etatcaution" class="oe_form_configuration" create="false">
                  ...
					<sheet>
						<group>
							<field name="banque_id" class="oe_inline"/>
							<field name="projet_id" class="oe_inline"/>
						</group>
					</sheet>
					<notebook>
                        <page string="Etat caution">
 
                                <field name="ligne_caution_etat" widget="select">
 
                                    <tree editable="bottom" string="Etat caution" create="false">
 
                                        <field name="name"/>
										....
										<field name="banque_id"  domain="[('banque_id', '=', parent.banque_id)]"/>
										<field name="projet_id" domain="[('projet_id', '=', parent.projet_id)]" />
										<field name="date_debut"/>
										....
                                    </tree>
                                </field>
                        </page>
				    </notebook>
                </form>
            </field>
        </record>
		 <record id="action_etatcaution" model="ir.actions.act_window">
			<field name="name">etatcaution</field>
			<field name="type">ir.actions.act_window</field>
			<field name="res_model">btp.etatcaution</field>
			<field name="view_type">form</field>
			<field name="view_mode">tree,form</field>
			<field name="res_id">1</field>
			<field name="view_id" ref="view_btp_etatcaution_form"/>
		</record>}}

i dont know why this part doesn't filter my list:
{{ <field name="banque_id"  domain="[('banque_id', '=', parent.banque_id)]"/>
<field name="projet_id" domain="[('projet_id', '=', parent.projet_id)]" /> }}

Avatar
Ignorer

The code is not clear, normally parent in one2many will be the inverse relation. ie, relation. please update the python code also

Meilleure réponse

Hi,

If you want to filter datas in the list view, you can use dynamic domain when you select bank_id or project_id.

e.g.:

@api.onchange('project_id', 'bank_id')
def onchange_values(self):
return {'domain': {'ligne_caution_etat': ['|', ('project_id', '=', self.project_id), ('bank_id', '=', self.bank_id)]}}

Best regards!

Avatar
Ignorer

This doesn't works anymore like this in odoo14, I get a depreciated-warning.

Do you have any idea how this works in odoo14?