2015-10-06 73 views
1

有一個帶有時間表模塊(自制)的odoo系統。我需要在我的xml文件的視圖部分中添加一些視圖過濾器。我做了默認的和它的作品:非默認視圖過濾器不顯示

<!-- 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="Last and following months" 
        name="filter1" 
        domain="[('write_date', '>=' ,(context_today()-relativedelta(months=2)+relativedelta(days=20)).strftime('%d-%m-%Y'))]" 
        help = "Press ALL to get all timesheets"/> 
        <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="Current and following months" 
       name="filter2" 
       domain="[('time_end_t', '>=' ,(context_today()).strftime('%d-%m-%Y'))]" 
       help = "Press all to get all timesheets"/> 
       <field name="time_start_t" select="True"/> 
       <field name="id_ank" select="True"/> 
      </search> 
      </field> 
    </record> 

所以,顯示的第一個和作品,第二一個不是。它們之間唯一的區別(除了過濾規則)是過濾器1是默認的,因爲在行動表示部分:

<record model="ir.actions.act_window" id="tabel_list_draft_action"> 
     <field name="name">Tableman's sign</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> 

也許,我必須描述非默認過濾器爲好,但我從來沒有看到任何我能做到這一點的例子。所以,任何意見是高度讚賞。在

回答

4

自定義搜索查看Odoo V8

什麼是Odoo搜索的看法?

每當您處於樹視圖,看板視圖或可以搜索的其他視圖時,Odoo使用XML搜索視圖定義來確定Odoo中的搜索應該如何針對該特定模型運行。例如,在銷售訂單樹視圖中,有特定的選項可以幫助您在Odoo中查找銷售訂單。 enter image description here

在這裏,我們可以看到您有多少選項可供客戶,銷售人員,銷售團隊,合同或產品搜索。您還可以看到,我們擴大了搜索選項,我們已經過濾器將銷售訂單限制爲僅限於銷售訂單,報價單,銷售,發票,完成和新郵件。也可以在搜索視圖中定義可用的分組依據選項。

我是否必須知道如何開發模塊來自定義搜索視圖?

這取決於您希望如何處理您的搜索視圖。幸運的是,添加額外的字段非常容易,您可能希望搜索或刪除不適合您特定業務需求的選項。但是,如果您希望創建更復雜的專用搜索,則可能需要編寫自定義Python代碼來滿足您的對象。然而,大多數情況下,您可以通過修改搜索視圖來完成大多數任務,而無需創建模塊。

Odoo搜索視圖的基本格式是什麼?

搜索視圖存儲在XML中,對於具有基本的XML知識的人來說,它非常易讀。以下是基本搜索視圖:

<?xml version="1.0"?> 
<search string="Search Sales Order"> 
        <field name="name" string="Sales Order" filter_domain="['|',('name','ilike',self),('client_order_ref','ilike',self)]"/> 
        <field name="partner_id" operator="child_of"/> 
        <field name="user_id"/> 
        <field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/> 
        <field name="project_id"/> 
        <field name="product_id"/> 
        <filter string="My" domain="[('user_id','=',uid)]" name="my_sale_orders_filter"/> 
        <separator/> 
        <filter string="Quotations" name="draft" domain="[('state','in',('draft','sent'))]" help="Sales Order that haven't yet been confirmed"/> 
        <filter string="Sales" name="sales" domain="[('state','in',('manual','progress'))]"/> 
        <filter string="To Invoice" domain="[('state','=','manual')]" help="Sales Order ready to be invoiced"/> 
        <filter string="Done" domain="[('state','=','done')]" help="Sales Order done"/> 
        <separator/> 
        <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/> 
        <group expand="0" string="Group By"> 
         <filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/> 
         <filter string="Customer" domain="[]" context="{'group_by':'partner_id'}"/> 
         <filter string="Order Month" domain="[]" context="{'group_by':'date_order'}"/> 
        </group> 
      </search> 

每個元素都會告訴Odoo引擎確切地說在搜索中有哪些選項可用。

爲什麼我要修改Odoo中的搜索視圖?

至於記錄的數量增加你的系統中,用戶將花費越來越多的時間找到他們需要完成特定任務的記錄。如果系統中只有幾十個銷售訂單,那麼定位數據不成問題。但隨着數據的增長,搜索功能使用戶更容易找到記錄變得更加重要。也許不是在Odoo任何其他定製選項越多,abiltity定製搜索視圖有可能提高用戶的滿意度和安全的時間在使用該系統的最大潛力。

+0

謝謝回答,但問題恰恰是在我嘗試加入濾光片來xml文件:他們只是不顯示在所有除默認的。 – Scraggesh

+0

@scraggesh這只是一個搜索視圖聽到那麼odoo你可以定義多個過濾器這個搜索視圖。 –

+0

這正是我想要做的事:我試圖通過描述他們的觀點xml文件我的模塊中添加多個過濾器。但只有默認的可見。 我是否應該在xml文件的* actions *部分包含過濾器? – Scraggesh