This question has been flagged
2 Replies
13292 Views

Hi,

I would like to edit a search view to add a field for the search. I want to do this by inheritance.

This is the record I want to edit :

<record id="view_picking_out_search" model="ir.ui.view">
            <field name="name">stock.picking.out.search</field>
            <field name="model">stock.picking</field>
            <field name="arch" type="xml">
                <search string="Picking list">
                    <field name="name" string="Picking List" filter_domain="['|',('name','ilike', self),('origin','ilike',self)]"/>
                    <filter icon="terp-check" name="available" string="Ready" domain="[('state','=','assigned')]" help="Assigned Delivery Orders"/>
                    <filter icon="terp-camera_test" name="confirmed" string="Waiting" domain="[('state','=','confirmed')]" help="Confirmed Delivery Orders"/>
                    <filter icon="terp-dialog-close" name="done" string="Done" domain="[('state','=','done')]" help="Delivery orders already processed"/>
                    <separator/>
                    <filter icon="terp-accessories-archiver-minus" string="Back Orders" domain="[('backorder_id', '!=', False)]" help="Is a Back Order"/>
                    <separator/>
                    <filter icon="terp-dolar" name="to_invoice" string="To Invoice" domain="[('invoice_state','=','2binvoiced')]" help="Delivery orders to invoice"/>
                    <field name="stock_journal_id"/>
                    <field name="company_id" groups="base.group_multi_company"/>
                    <group expand="0" string="Group By...">
                        <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
                        <filter string="Order Date" icon="terp-go-month" domain="[]"  context="{'group_by':'date'}"/>
                        <filter string="Expected Date" icon="terp-go-month" domain="[]"  context="{'group_by':'min_date'}"/>
                        <filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'stock_journal_id'}"/>
                    </group>
                </search>
            </field>
        </record>

I want to add a search on the field "partner_id", I did it this way :

<record id="view_livraison_picking_out_search" model="ir.ui.view">
            <field name="name">stock.picking.out.search</field>
            <field name="model">stock.picking</field>
            <field name="inherit_id" ref="stock.view_picking_out_search"/>
            <field name="arch" type="xml">
                <field name="name" position="after">
                    <separator/>
                   <field name="partner_id" string="Client" filter_domain="[('partner_id','ilike', self)]"/>
                </field>
            </field>
    </record>

But no change appears. If I add the field directly in the 1st record, it allows me to do what I need but I'd prefer doing this with inheritance.

Can anyone help me to add this field to the search options?

Avatar
Discard

Have you restarted the server? Check if you'r view is applied to database by going to Settings --> Customisation --> User Interface --> Views and trying to search this view. If it's there it seem's you're inheriting wrong view.

Author

Yes I have restarted the server and updated the addons. I have found my view in the place you told me, are you sure it should not appear here? I'll try to check if I can find the good inheriting view then...

Author

I habe found the solution : I was using the good inheriting view but the wront model. I was using stock.picking instead of stock.picking.out. Thanks for your help !

Best Answer

enter code here

<record id="view_picking_internal_search" model="ir.ui.view">
            <field name="name">stock.picking.internal.search</field>
            <field name="model">stock.picking</field>
            <field name="arch" type="xml">
                <search string="Internal Picking List">
                    <field name="name" string="Internal Picking List" filter_domain="['|',('name','ilike', self),('origin','ilike',self)]"/>
                    <filter icon="terp-check" name="available" string="Ready" domain="[('state','=','assigned')]" help="Assigned Internal Moves"/>
                    <filter icon="terp-camera_test" name="confirmed" string="Waiting" domain="[('state','=','confirmed')]" help="Confirmed Internal Moves"/>
                    <filter icon="terp-dialog-close" name="done" string="Done" domain="[('state','=','done')]" help="Pickings already processed"/>
                    <field name="partner_id"/>
                    <field name="product_id"/>
                    <field name="stock_journal_id"/>
                    <group expand="0" string="Group By...">
                        <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
                        **<filter string="partner" icon="terp-go-month" domain="[]"  context="{'group_by':'partner_id'}"/>**
                        <filter string="Order Date" icon="terp-go-month" domain="[]"  context="{'group_by':'date'}"/>
                        <filter string="Expected Date" icon="terp-go-month" domain="[]"  context="{'group_by':'min_date'}"/>
                        <filter string="Origin" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
                        <filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'stock_journal_id'}"/>
                    </group>
                </search>
            </field>
        </record>

* added in base code it will work check it in the deliver order list view. remove * and place it willwork

Avatar
Discard
Author

Thanks for your help but I had already solved my problem as told in the previous comments. I didn't want to modify the original view, thanks anyway.

Best Answer

how do you added the new field to the model in the python code?

im under the same scenario but when i try to install my module I get: "the field is_paid does not exist".


But I have added it like:


class SaleReportExtended(models.Model):
_name = 'sale.report'
_inherit = ['sale.report']
is_paid = fields.Boolean(string='Payment Received?', readonly=True)


thanks

Avatar
Discard