There is an odoo with a self- writing time sheet module. There was a need to distribute the display filters in the xml-file in the views, but if the first one (by default) passed with a bang, then the next ones for some reason are not displayed.

<!-- tabel search view 1 --> <record id="view_tabel_search1" model="ir.ui.view"> <field name="name">tabel.tabel.search1</field> <field name="model">tabel.tabel</field> <field name="type">search</field> <field name="arch" type="xml"> <search string="Checker"> <filter string="Прошлый и последующие месяцы" name="filter1" domain="[('write_date', '>=' ,(context_today()-relativedelta(months=2)+relativedelta(days=20)).strftime('%d-%m-%Y') )]" help = "Чтобы посмотреть табели за прошлые месяцы, нажмите ВСЕ"/> <field name="time_start_t" select="True"/> <field name="id_ank" select="True"/> </search> </field> </record> <!--tabel search view 2 --> <record id="view_tabel_search2" model="ir.ui.view"> <field name="name">tabel.tabel.search2</field> <field name="model">tabel.tabel</field> <field name="type">search</field> <field name="arch" type="xml"> <search string="Checker"> <filter string="Текущий и последующие месяцы" name="filter3" domain="[('time_end_t', '>=' ,(context_today()).strftime('%d-%m-%Y'))]" help = "Чтобы посмотреть табели за прошлые месяцы, нажмите ВСЕ"/> <field name="time_start_t" select="True"/> <field name="id_ank" select="True"/> </search> </field> </record> 

The first is displayed, the second is not. The whole difference between them is that the first one is the default filter, which is noted separately in actions.

 <record model="ir.actions.act_window" id="tabel_list_draft_action"> <field name="name">На подпись табельщика</field> <field name="res_model">tabel.tabel</field> <field name="view_type">form</field> <field name="domain">[('state','=', 'draft')]</field> <field name="view_mode">tree,form,graph</field> <field name="search_view_id" ref="view_tabel_search2"/> <field name="context">{'search_default_filter1':1,'state':'draft'}</field> </record> 

Maybe non-default filters also need to be described in some way in actions, even though I have not seen this in manuals. In general, I will be grateful for any advice.

    1 answer 1

    Everything turned out to be much simpler, as suggested in the English CO, inside the search view you can describe several filters. The working example is below:

     <!-- tabel search view 1 --> <record id="view_tabel_search1" model="ir.ui.view"> <field name="name">tabel.tabel.search1</field> <field name="model">tabel.tabel</field> <field name="type">search</field> <field name="arch" type="xml"> <search string="Checker"> <filter string="Прошлый и последующие месяцы" name="filter1" domain="[('write_date', '>=' ,(context_today()-relativedelta(months=2)+relativedelta(days=20)).strftime('%d-%m-%Y') )]" help = "Чтобы посмотреть табели за прошлые месяцы нажмите ВСЕ"/> <filter string="Текущий и последующие месяцы" name="filter2" domain="[('time_end_t', '>=' ,(context_today()).strftime('%d-%m-%Y'))]" help = "Чтобы посмотреть табели за прошлые месяцы нажмите ВСЕ"/> <field name="time_start_t" select="True"/> <field name="id_ank" select="True"/> </search> </field> </record> 

    And of course you need to specify it as the default in actions :

      <record model="ir.actions.act_window" id="tabel_list_draft_action"> <field name="name">На подпись табельщика</field> <field name="res_model">tabel.tabel</field> <field name="view_type">form</field> <field name="domain">[('state','=', 'draft')]</field> <field name="view_mode">tree,form,graph</field> <field name="search_view_id" ref="view_tabel_search2"/> <field name="context">{'search_default_filter1':1,'state':'draft'}</field> </record>