2017-02-23 102 views
1

我在同一时间使用两个或多个过滤器时遇到问题。odoo同时使用两个过滤器

例如,如果我启用两个过滤器“今日”和“明天”,则SQL查询将其识别为“今天或明天”句子。

有没有办法使它成为Today AND Tomorrow这样的句子,所以SQL查询会同时考虑?我不想做一个第三滤波器Today and Tomorrow

我的XML代码是在这里:

<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> 

回答

1

嗨,你需要使用separator S表示AND过滤器。

那么试试这个:

<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> 
+0

谢谢你,这个工作。你知道我可以阅读那种文档的任何网页吗? – Madis

+0

有一些博客,但我更喜欢[官方的Odoo文档](https://www.odoo.com/documentation/10.0/),堆栈溢出和代码本身。 [OCA](https://github.com/OCA)有一些非常好的模块,你也可以从中学到很多东西。 – CZoellner