Hi,
I created a new class inheriting stock.pack.operation. This class adds a One2many field named carrier_pack and an Integer field named carrier_pack_count. The field carrier_pack_count is a computed value, returning the number of objects in the field carrier_pack. The class is well installed and I can find both fields with the developer tools via the Technical>Database>Models menu.
I also try to display an icon in the list of operations of a stock.picking view. I created a new ir.ui.view <record> inheriting stock.view_picking_form. This form targets "//form/sheet/notebook/page/field[@name='pack_operation_product_ids']/tree" and adds some code as follows:
<field name="arch" type="xml"> <xpath expr="//form/sheet/notebook/page/field[@name='pack_operation_product_ids']/tree" position="inside"> <button type="object" name="show_pack" string="Pack expedited" icon="fa-truck" attrs="{'invisible': [('carrier_pack_count', '!=', 0)]}"/> </xpath></field>
given the //form/sheet/notebook/page/field[@name='pack_operation_product_ids']/tree is :
<field name="pack_operation_product_ids" options="{'reload_on_button': True}" context="{'default_picking_id': id, 'default_location_id': location_id, 'default_location_dest_id': location_dest_id}" mode="tree,kanban"> <tree editable="bottom" decoration-muted="result_package_id" decoration-danger="qty_done>product_qty" decoration-success="qty_done==product_qty and state!='done' and not result_package_id"> <field name="package_id" groups="stock.group_tracking_lot" invisible="1"/> <field name="product_id" required="1" attrs="{'readonly': [('fresh_record', '=', False)]}"/> <field name="fresh_record" invisible="1"/> <field name="product_uom_id" attrs="{'readonly': [('fresh_record', '=', False)]}" groups="product.group_uom"/> <field name="lots_visible" invisible="1"/> <!-- [...] --> <button name="split_lot" string="Lot Split" type="object" icon="fa-list" groups="stock.group_production_lot" attrs="{'invisible': ['|', ('lots_visible', '=', False), ('state', 'not in', ['confirmed', 'assigned', 'waiting', 'partially_available','done'])]}"/> <button name="show_details" string="Modify" type="object" icon="fa-pencil" groups="stock.group_stock_multi_locations" states="confirmed,assigned,waiting,partially_available"/> </tree><!-- [...] --></field>
adding my new button results in having the following code:
<!-- [...] --> <button name="split_lot" string="Lot Split" type="object" icon="fa-list" groups="stock.group_production_lot" attrs="{'invisible': ['|', ('lots_visible', '=', False), ('state', 'not in', ['confirmed', 'assigned', 'waiting', 'partially_available','done'])]}"/> <button name="show_details" string="Modify" type="object" icon="fa-pencil" groups="stock.group_stock_multi_locations" states="confirmed,assigned,waiting,partially_available"/><button type="object" name="show_pack" string="Pack expedited" icon="fa-truck" attrs="{'invisible': [('carrier_pack_count', '!=', 0)]}"/> </tree>
<!-- [...] -->
Fields like lots_visible or state used in attrs are well considered as belonging to one of the current pack_operation_product_ids parent field as expected. But the carrier_pack_count used in attrs="{'invisible': [('carrier_pack_count', '!=', 0)]}" defined in my inheriting view IS NOT.
Odoo displays the following error message :
Unknown field carrier_pack_count in domain [["carrier_pack_count","!=",0]]
Do I miss something? Is this a bug? How to fix this issue?
Thanks.