2013-08-03 77 views
1

我需要爲我的模塊的樹視圖添加默認過濾器。在樹視圖中添加默認過濾器 - OpenErp自定義模塊

我看到一些代碼示例中的OpenERP,像這樣的:

<filter 
    string="Partner" 
    icon="terp-partner" 
    domain="[]" 
    context="{'group_by':'partner_id'}" 
    /> 

這一個purchase模塊中,通過partner_id分組,作爲一個例子。

現在,我有一個自定義模塊,當你點擊它的菜單時,我需要一個「默認」過濾器。

而且此過濾器必須顯示所有未過期的記錄,或者在瀏覽模塊中的記錄時尚未通過實際日期的記錄。

我有我的自定義模塊這一領域:

'Fecha_de_Vence': fields.date(
    'Fecha de Vencimiento', 
    required=True, 
    select=True, 
    ), 

這是我需要爲這個模塊中的所有記錄的過濾器領域。

現在,在'高級搜索'我可以把例如Fecha de Vencimiento不超過actual date,好吧,我需要把它作爲'默認'過濾器。

任何人都可以在openerp的xml視圖中瞭解如何在默認情況下獲取此信息?

回答

5

你需要一個搜索視圖,並在act_window上下文項:

<record id="search_xxx_filter" model="ir.ui.view"> 
    <field name="name">module.class.select</field> 
    <field name="model">module.class</field> 
    <field name="arch" type="xml"> 
     <search string="Search xxx"> 
      <field name="Fecha_de_Vence" string="Fecha de Vencimiento" filter_domain="[(1,'=',1)]"/> 
      <separator/> 
      <filter string="Fecha de Vencimiento" name="type_date" domain="[(1,'=',1)]" help="..."/> 
      <separator/> 
      <group expand="0" string="Group By..."> 
       <filter string="Assigned to" domain="[]" context="{'group_by' : 'user_id'}" /> 
       <filter string="Status" domain="[]" context="{'group_by': 'state'}"/> 
       <filter string="Priority" domain="[]" context="{'group_by': 'priority'}"/> 
      </group> 
     </search> 
    </field> 
</record> 

<record id="module_class_act" model="ir.actions.act_window"> 
    <field name="name">xxx</field> 
    <field name="res_model">module.class</field> 
    <field name="view_type">form</field> 
    <field name="context">{"search_default_type_date":1}</field> 
    <field name="view_id" ref="module_class_tree-view"/> 
</record> 

我離開了組條目,所以你可以看到他們的樣子,但你需要將其刪除或調整他們所以他們匹配你的數據。另外,moduleclass這兩個字應該替換爲您的數據。

+0

謝謝,它幾乎可以工作,我的意思是如果我只使用第一個xml記錄,它顯示了我在過濾器選項中的字段,但是如果我使用第二條記錄和第一個ie:「module_class_act」我不明白我應該在「ref = module_class_tree-view」中輸入什麼,它會引發一個關於未在系統中定義的外部標識符的錯誤,我把「solvencia_solvencia_tree-view」但仍然出現這個錯誤,solvencia是我正在工作的類這一個 – NeoVe

+0

一個問題,如果我只是「保存」一個自定義過濾器在搜索,不會做同樣的工作? – NeoVe

+0

@KristianKoci:是的。在xml文件中使用它的好處是全新安裝。 –

3

Ethan

這是我如何解決它,沒有你的建議,將是不可能的:

<record id="solvencia_search" model="ir.ui.view"> 
<field name="name">solvencia.solvencia.select</field> 
<field name="model">solvencia.solvencia</field> 
<field name="arch" type="xml"> 
    <search string="Solvencias"> 
     <field name="Fecha_de_Vence" string="Fecha de Vencimiento" filter_domain="[('Fecha_de_Vence','=',((context_today()-datetime.timedelta(days=10)).strftime('%%Y-%%m-%%d')))]"/> 
     <separator/> 
     <filter string="Fecha de Vencimiento" name="type_date" domain="[('Fecha_de_Vence','=',((context_today()-datetime.timedelta(days=10)).strftime('%%Y-%%m-%%d')))]" help="..."/> 
     <separator/> 
     <group expand="0" string="Group By..."> 
      <filter string="Assigned to" domain="[]" context="{'group_by' : 'Fecha_de_Vence'}" /> 
      <filter string="Status" domain="[]" context="{'group_by': 'Fecha_de_Emision'}"/> 
      <filter string="Priority" domain="[]" context="{'group_by': 'nsol'}"/> 
     </group> 
    </search> 
</field> 

而且contextact_window

<record id="action_solvencia_solvencia" model="ir.actions.act_window"> 
    <field name="name">Solvencias</field> 
    <field name="res_model">solvencia.solvencia</field> 
    <field name="view_type">form</field> 
    <field name="context">{"search_default_type_date":1}</field> 
    <field name="view_mode">tree,form</field> 
    <field name="view_id" ref="solvencia_solvencia_tree"/> 
     <field name="nsol" /> 
     <field name="Fecha_de_Emision" /> 
     <field name="Fecha_de_Vence" /> 
     <field name="ministerio" /> 
     <field name="ins_em" /> 
     <field name="cod_ver" /> 
     <field name="cadidate" /> 
     <field name="observa" /> 
</record> 

完美的作品,非常感謝你!

+1

不客氣!不過,您可能希望將過濾器字符串從「分配給」,「狀態」和「優先級」更改爲有意義的內容。;) –

+0

是啊大聲笑呵呵我正在清理它,但重要的事情現在正在工作,謝謝! :) – NeoVe