Madis
Madis

Reputation: 11

odoo using two filters at the same time

I have a problem with using two or more filters at the same time.

For example if I enable two filters "Today" and "Tomorrow" then the SQL query recognizes it as "Today OR Tomorrow" sentence.

Is there a way to make it as Today AND Tomorrow sentence so the SQL query would consider both? I do not want to make a third filter Today and Tomorrow

My XML code is here:

<record id="view_klient_tellimus" model="ir.ui.view">
    <field name="name">picking.klient.tellimus.filter</field>
    <field name="model">stock.picking</field>
    <field name="arch" type="xml">
        <search string="Search Picking">
            <filter name="today" string="Today" domain="[('route_time','&lt;=', datetime.datetime.combine(context_today(), datetime.time(23,59,59))), ('route_time','&gt;=', datetime.datetime.combine(context_today(), datetime.time(0,0,0)))]"/>
            <filter name="tomorrow" string="Tomorrow" domain="[('route_time','&lt;=', datetime.datetime.combine(context_today()+datetime.timedelta(days=1), datetime.time(23,59,59))), ('route_time','&gt;=', datetime.datetime.combine(context_today()+datetime.timedelta(days=1), datetime.time(0,0,0)))]"/>
        </search>
    </field>
</record>

Upvotes: 1

Views: 1945

Answers (1)

CZoellner
CZoellner

Reputation: 14768

Hi you need to use separators for AND filters.

So try this:

<record id="view_klient_tellimus" model="ir.ui.view">
    <field name="name">picking.klient.tellimus.filter</field>
    <field name="model">stock.picking</field>
    <field name="arch" type="xml">
        <search string="Search Picking">
            <filter name="today" string="Today" domain="[('route_time','&lt;=', datetime.datetime.combine(context_today(), datetime.time(23,59,59))), ('route_time','&gt;=', datetime.datetime.combine(context_today(), datetime.time(0,0,0)))]"/>
            <separator />
            <filter name="tomorrow" string="Tomorrow" domain="[('route_time','&lt;=', datetime.datetime.combine(context_today()+datetime.timedelta(days=1), datetime.time(23,59,59))), ('route_time','&gt;=', datetime.datetime.combine(context_today()+datetime.timedelta(days=1), datetime.time(0,0,0)))]"/>
        </search>
    </field>
</record>

Upvotes: 2

Related Questions